Эквивалент fseek и ftell в основном

Я хотел бы знать, есть ли эквивалент fseek а также ftell когда я работаю в основном.

Например, если я наберу имя файла при запросе, в конце я нажму клавишу ввода. Далее я спрошу пользователя другое имя файла, но есть '\n' в буфере, который не был прочитан. Пользователь не сможет ввести имя второго файла, потому что программа будет читать '\n', Поэтому я хотел бы переместиться на одну позицию вперед в буфере. Обычно в файле я бы сделал:

fseek(file, ftell + 1, SEEK_SET);

Я хотел бы сделать то же самое, когда я в основном, не работаю с файлом.

2 ответа

Решение

На самом деле, можно использовать fseek в mainнужно просто установить FILE * stream в stdinтак будет:

fseek(stdin, ftell - 1, SEEK_SET);

Самый простой способ сделать это - просто сказать,

getc(stdin);

или даже короче

getchar();

и игнорировать возвращенный символ.

Другие вопросы по тегам