Я пишу небольшую c-программу для чтения данных из текстового файла. Я использую c, но мои знания очень просты.C: fscanf не изменяет filestream
#define MAXLINELEN 200
void skipLines(FILE *, int);
int readnextval(FILE* , double *);
void main(int argc, char *argv[])
{
FILE* in_File=fopen("input.txt","r");
char buffer[MAXLINELEN];
skipLines(in_File,HEADERLINES);
fscanf(in_File," %[^0-9\n] ",buffer);
printf("buffer =%s\n",buffer);
fscanf(in_File," %[^0-9\n] ",buffer);
printf("buffer =%s\n",buffer);
fscanf(in_File," %[^0-9\n] ",buffer);
printf("buffer =%s\n",buffer);
}
Мой текстовый файл имеют 2 Headerlines и следующая строка что-то вроде: SOMETEXT значения значения значения Выхода в консоли:
buffer =SOMETEXT
buffer =SOMETEXT
buffer =SOMETEXT
Почему функция fscanf не двигается указателя после чтения строка буфера. я предсказывал такой вывод:
buffer =SOMETEXT
buffer =
buffer =
Заранее спасибо!
Что такое 'HEADERLINES' здесь? – Rustam
HEADERLINES - это предопределенная константа буквально 2 в этом примере (количество строк заголовка). – questioner
Прочитайте [fscanf (3)] (http://man7.org/linux/man-pages/man3/fscanf.3.html). Используйте возвращаемое значение. Скомпилируйте все предупреждения и информацию об отладке ('gcc -Wall -g'). ** Используйте ваш отладчик. ** ('gdb') –