Я пытаюсь создать подстроки из моего из каждой строки моего входного файла.Ошибка при создании подстрок из входного файла
Я заметил, что когда я создаю подстроку из подстроки (0,2) положения нуля, то она печатает правильно, но если я начну из любых больше 0 он выдает эту ошибку:
LibC++ abi.dylib: прекращение с неперехваченного исключением типа станд :: out_of_range: basic_string
и Им также чтение в строках в этом формате 40AF FF A9
int main()
{
string STRING;
ifstream infile;
infile.open("test-file.txt");
while(!infile.eof())
{
getline(infile, STRING);
string tag = STRING.substr(2,2);
cout << tag << endl;
}
return 0;
Можем ли мы увидеть кусок файла test-file.txt? (не только формат) Добавьте его к вопросу, а не к комментарию, pls. – belwood
Вы должны всегда проверять размер строки перед выполнением операции подстроки. Что, если, например, у вас пустая строка? –
Вы проверяете перед чтением, а не после чтения! Используйте 'while (std :: getline (infile, STRING))'. Кроме того, вам нужно иметь по крайней мере 4 символа в строке для вашего 'STRING.substr (2, 2)' для успеха. Вы должны убедиться, что это так (при вашей текущей настройке вы получите неопределенное поведение после последней строки). –