當使用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