как избавиться от пустой строки в с ++?

Я бы просто сделал регулярное выражение и переделал его. если вы не делаете достаточного количества итераций, что это становится огромной проблемой производительности, ее проще всего кодировать (и понимать, когда вы оглядываетесь на нее)

$text = 'ignore everything except this (text)';
preg_match('#\((.*?)\)#', $text, $match);
print $match[1];
1
задан Lizard Derad 18 January 2019 в 18:09
поделиться

1 ответ

Ваш входной файл выглядит следующим образом:

3[endline]
first fr random 5[endline]
second          9[endline]
third shazam    2[endline]

Обратите внимание на добавленные мной [endline]: они могут быть '\n', '\r\n' в зависимости от системы, сгенерировавшей файл.

Ваша первая инструкция:

in >> n;

a форматированное чтение ввода: вы просите прочитать целое число из файла, поэтому будут прочитаны только те символы, которые могут образовывать действительные целые числа .

Это означает, что после этой инструкции оставшаяся часть файла будет иметь вид:

[endline]
first fr random 5[endline]
second          9[endline]
third shazam    2[endline]

Остальная часть вашего кода читает необработанные байты, поэтому он также будет читать первый [endline] (и печатать он).

Как и предполагалось в комментариях, не следует использовать массивы переменной длины , так как они не являются частью какого-либо стандарта C ++ (но являются частью стандарта C). Попробуйте вместо этого использовать стандартную библиотеку C ++ .

0
ответ дан marco6 18 January 2019 в 18:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: