Эквивалент 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();
и игнорировать возвращенный символ.