使用 ifstream 类从输入文件中读取单词时,我已经使用了以下表达式:
#include <iostream>
#include <fstream>
int main(int argc, char *argv[])
{
std::ifstream inputStream(myFile.txt);
std::string myString;
myFile.open()
while(myFile.good())
{
myFile >> myString;
printf("%s \n", myString);
}
return 0;
}
myFile.txt的内容如下:
"这是一个简单的程序。"使用g++编译器编译和执行时,一切都很顺利。
然而,当使用msvc 2008编译相同的代码时,提取运算符(>>)返回错误,要求我将std::string替换为初始化的字符数组或任何支持的本地类型。
这让我感到困惑,因为我希望标准库在所有实现中的使用方式都是相同的。
我理解编译错误,并知道通过使用c_str()来修复它的方法。
但是,如果有人能够澄清为什么标准库的使用在不同平台上有所不同,那将对我有很大帮助。
对我来说,它已经不再是标准了!!
编辑:代码已更新为完整代码。myFile.txt内容已更新。
myFile
是什么?你还没有定义它。如果它是inputStream
,那么后者没有不带参数的open
方法。 - Lol4t0