這是我的問題:我從txt讀取一些行。這個TXT是這樣的:我的字符串從ifstream也獲得「 n」
Ciao: 2000
Kulo: 5000
Aereo: 7000
ecc。我必須將(':')之前的每個單詞分配給一個字符串,然後分配給一個地圖;並將數字轉換爲int,然後轉換爲地圖。問題是從第二行開始,我的字符串變成(「\ nKulo」)ecc!我不想要這個!我能做什麼?
這是代碼:
#include <iostream>
#include <fstream>
#include <string>
#include <map>
using namespace std;
int main()
{
map <string, int> record;
string nome, input;
int valore;
ifstream file("punteggi.txt");
while (file.good()) {
getline(file, nome, ':');
// nome.erase(0,2); //Elimina lo spazio iniziale
file >> valore;
record[nome] = valore;
cout << nome;
}
file.close();
cout << "\nNome: ";
cin >> input;
cout << input << ": " << record[input] << "\n";
cout << "\n\n";
return 0;
}
不相關,但使用'std :: endl'而不是'「\ n」'。 – 2012-02-25 15:36:18
你可以使用'std :: string :: substr'跳過第一個字符。 – 2012-02-25 15:37:49
@ J.N。 - 使用'std :: endl'和'\ n' - 'std :: endl'會導致緩衝區刷新。 – birryree 2012-02-25 15:38:23