Hai, saya baru mengenal C++ dan mencoba mengerjakan tugas di mana kami membaca banyak data dari file txt dalam format
surname,initial,number1,number2
Saya meminta bantuan sebelum seseorang menyarankan membaca 2 nilai sebagai string kemudian menggunakan stoi() atau atoi() untuk mengonversi ke int. Ini berfungsi dengan baik, kecuali saya perlu menggunakan parameter ini "-std=c++11" untuk kompilasi atau akan menghasilkan kesalahan. Ini bukan masalah pada komputer saya sendiri yang akan menangani "-std=c++11", tapi sayangnya bagi saya mesin tempat saya harus mempresentasikan program saya tidak memiliki opsi ini.
Jika ada cara lain untuk mengubah string menjadi int yang tidak menggunakan stoi atau atoi?
Ini kode saya sejauh ini.
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);
}
-std=c++11
untukatoi
. Tapi saya akan menghindariatoi
, karena tidak mengizinkan pemeriksaan kesalahan apa pun. Solusi yang lebih baik adalahstrtoi
. - person James Kanze   schedule 11.10.2013stringstream
, padahal yang diinginkan adalahistringstream
? (Saya melihatnya sepanjang waktu, dan saya tidak mengerti mengapa ada orang yang melakukannya.) - person James Kanze   schedule 11.10.2013istringstream
, untuk format semacam ini, saya akan menggunakan sesuatu sepertiboost::split
(yang masih menyisakan masalah konversi keint
terbuka). - person James Kanze   schedule 11.10.2013