Есть ли в C функция для чтения файла с пользовательским разделителем, таким как '\ n'?
Например: у меня есть:
Я написал \ n, чтобы проиллюстрировать в файле LF (перевод строки, '\ n', 0x0A)
this is the firstline\n this is the second line\n
Я бы хотел, чтобы файл был прочитан по частям и разделен на две строки:
this is the firstline\n
this is the second line\n
Я знаю fgets, я могу читать до количества символов, но не по любой схеме. В C ++ я знаю, что есть метод, но в C, как это сделать?
Я покажу другой пример:
Я читаю файл ABC.txt
abc\n
def\n
ghi\n
Со следующим кодом:
FILE* fp = fopen("ABC.txt", "rt");
const int lineSz = 300;
char line[lineSz];
char* res = fgets(line, lineSz, fp); // the res is filled with abc\ndef\nghi\n
fclose(fp);
Я ожидал, что fgets должен был остановиться на abc \ n
Но res заполняется: abc \ ndef \ nghi \ n
решено: Проблема в том, что я использовал Notepad ++ в WindowsXP (тот, который я использовал
Я не знаю, что происходит в других окнах) сохранил файл с другим
кодирование.
Новая строка в fgets требует CRLF, а не только CR при вводе
введите в блокноте ++
Я открыл блокнот Windows, и он работал, Fgets читает строку
до abc \ n во втором примере.