2016-01-28 5 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]) 
Смежные вопросы