Не знаю, имеет ли это значение, но я пишу код на ПК с Win7 в netbeans и компилирую/запускаю на rasberry pi (под управлением raspbian (думаю, Debian)).
Все, что я пытаюсь сделать, это прочитать простой текстовый файл с помощью getline! Должен быть простым (извините за каламбур
Я пробовал создать текстовый файл с окончаниями строк как в Unix, так и в ASCII (0x0A и 0x0D0A) - безрезультатно. Я запускаю программу с тем же идентификатором пользователя, который создал текстовый файл, поэтому проблем с разрешениями нет.
Getline устанавливает бит сбоя (только... не eof), но ошибка сообщает «Успех», и я не получаю никаких данных в «работе».
Вот большая часть класса, вызывающего ошибку, со множеством отладочных аннотаций. «theFile» — это просто fstream (потому что в будущей версии я, возможно, захочу открыть его для вывода). Но здесь, как видно из вывода, я определенно открываю файл с помощью ios::in. «Проблема» возникает с циклом getline (который никогда не вводится) в функции-члене getValue.
Я не включил конструктор, но он устанавливает только несколько флагов в значение false. А вызывающая сторона (MJAppl) просто вызывает MJConfigFile::getValue( "log_dir", false ).
Код: Выделить всё
string MJConfigFile::getValue ( string in_key, bool in_restart ) {
bool found = false ;
string work , ret ;
int key_len = in_key.length() , loop_count = 0 ;
//char workbuf [ 200 ] ;
cout
Подробнее здесь: [url]https://stackoverflow.com/questions/45650485/c-getline-fails-with-success[/url]
Мобильная версия