У меня есть этот код ....
file_parser::file_parser(string file){
txtfile.open(file.c_str(), ios::in);
if (!txtfile.good()){
string error=err(0," "+file+" not found. Exit code ",1);
throw file_parse_exception(error);
}
while (!txtfile.eof()){
char str[200];
txtfile.getline(str, 200);
string str2=str;
vfile.push_back(str2);
}
txtfile.close();
}
и проблема в том, что если во входном файле строка длиной более 200 символов зависает, то происходит сбой. Я проверил значение str при сбое, и ему предшествует нулевой символ, затем он пытается вытолкнуть нулевую (не инициализированную) строку на вектор, что вызывает зависание / сбой. Кто-нибудь знает способ обойти это? Я думал, что при использовании getline он усекает массив символов до 199 (+ ноль) символов, но, видимо, этого не происходит. Я в тупике. Дело в том, что я хочу, чтобы каждый pushback имел максимум 200 символов. Я действительно не хочу ВЕСЬ строки, что будет делать 'String Str'. и если строка содержит более 200 символов, она должна прочитать первые 200, а затем перейти к следующей строке.