您好我是新來的C++和試圖做一個任務,我們要從一個txt文件中的C++字符串爲int不使用的atoi()或Stoi旅館()
surname,initial,number1,number2
格式讀取大量數據在有人建議以字符串的形式讀取2個值之前,我要求幫助,然後使用stoi()或atoi()將其轉換爲int。這很好,除了我需要使用這個參數「-std = C++ 11」進行編譯或者它會返回一個錯誤。這在我自己的計算機上不會出現問題,它將處理「-std = C++ 11」,但不幸的是對於我來說,我必須提供我的程序的機器沒有這個選項。
如果有另一種方法可以將字符串轉換爲不使用stoi或atoi的int?
這是我的代碼到目前爲止。
while (getline(inputFile, line))
{
stringstream linestream(line);
getline(linestream, Surname, ',');
getline(linestream, Initial, ',');
getline(linestream, strnum1, ',');
getline(linestream, strnum2, ',');
number1 = stoi(strnum1);
number2 = stoi(strnum2);
dosomethingwith(Surname, Initial, number1, number2);
}
首先,你不應該在atoi中需要'-std = C++ 11'。但我會避免'atoi',因爲它不允許任何錯誤檢查。更好的解決方案是「strtoi」。 –
當你想要的是'istringstream'時,使用'stringstream'這個狂熱是什麼? (我一直都在看,而且我不明白爲什麼有人會這樣做。) –
另外,對於這種格式,而不是'istringstream',我會使用類似'boost :: split'的東西仍然存在轉換爲「int」的問題)。 –