2016-01-28 25 views
1

我遇到了問題getline()。我的文本文件中的第一行是C C0 H:7 E:7 P:10,但打印line(其中包含由getline()返回的字符串)將生成C▒Hdtors。這裏發生了什麼?getline()得到不正確的字符

的main.cpp

int main(int argc, char* argv[]) { 

    string line,tmp_holder; 
    int tmp_h, tmp_e, tmp_p, counter=0; 
    vector<string> info; 
    ifstream finp(argv[0]); 

    map<int, Circuit> circuits; 
    vector<Juggler> jugglers; 

    if (!finp.is_open()) { 
     cerr << "Unable to open input file " << argv[0] << endl; 
     exit(1); 
    } 

    while (getline(finp,line)) { 

     tmp_holder = ""; 
     info.clear(); 

     if (line[0] == 'C') { 

      cout << "Line: " << line << endl; 
+0

我猜測你是從命令行傳遞文件的名稱。它存儲在argv [1]中,而不是0. –

+0

就是這樣。謝謝。 –

回答

4

的argv [0]是你的程序的名字,而不是文件名。更改

ifstream finp(argv[1]) 
相關問題