当使用ifstream的类来读取从输入文件中的单词,我已经使用下面的表达式:差异使用克ifstream的++和MSVC
#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:
或者,你可以用一个标准的算法做的工作'?你还没有定义一个。如果ot是'inputStream',后者没有没有参数的'open'。 – Lol4t0 2012-04-11 19:38:36
@ Lol4t0代码更新完成。另外,模式默认是ios_base :: in。参考:http://www.cplusplus.com/reference/iostream/ifstream/open/ – 2012-04-11 21:39:11
@JerryCoffin:作出比答案,我已经被 – 2012-04-11 21:42:06