Я думаю, что это просто, но не для меня, очевидно!
У меня есть консольное приложение. Мне нужно прочитать ввод с клавиатуры, но stdin
был перенаправлен в файл. Итак, как мне создать FILE-Handle, указывающий на поток клавиатуры, который я могу использовать с fgets
и т. д.?
Я обнаружил, что ttyname(0)
кажется тем, что я ищу в POSIX-среде, которой у меня здесь нет. Я в системе Windows со стандартным компилятором Visual Studio.
Любые идеи? Заранее спасибо.
ttyname
не помогла бы в среде POSIX, поскольку она возвращала быNULL
, когда ввод поступает из канала или перенаправленного файла. - person Some programmer dude   schedule 05.10.2012stdin has been redirected to a file.
- почему бы вам не использоватьfclose
этот указатель файла иfreopen
стандартный ввод для нового файла. Как только вы закончите, снова перенаправьте стандартный ввод в старый файл. - person nav_jan   schedule 05.10.2012fopen
илиfreopen
. Если бы у меня был этот путь, мне не нужно было бы перенаправлятьstdin
. Я мог бы просто создать еще один дескриптор для ввода с клавиатуры и использовать как файл, так и ввод с клавиатуры независимо друг от друга. Но спасибо за мысль. - person Sascha Leyer   schedule 05.10.2012