为QString实现std::ostream& operator <<(std::ostream &stream,const QString &str){ stream << str.toAscii().constData(); //or: stream << str.toStdString(); //?? return stream;}而不是写作stream << str.toAscii().constData();每次在代码中。但是,由于它不在标准Qt库中,因此我认为有任何特殊原因不这样做。如上所述,重载 (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 如果Qt库中包含<<运算符,则该库的每个客户端都必须使用完全相同的实现。但是由于QString的性质,这显然不是这些客户想要的。某些编写与西欧遗留文件交互的软件的人可能想使用Latin1()字符,美国人可能会使用Ascii(),而更现代的软件则可能想要使用Utf8()。在库中只有一个实现会无法接受地限制整个库的操作。 (adsbygoogle = window.adsbygoogle || []).push({});