リダイレクト/パイプでstdinを使用した後、fgets()で文字の入力を行う方法 - Frost Moon Project
Home >
Tips >
リダイレクト/パイプでstdinを使用した後、fgets()で文字の入力を行う方法
リダイレクト/パイプでstdinを使用した後、fgets()で文字の入力を行う方法
-
- 問題
- 解決方法
- 問題
-
a.exe < file
dir /b | b.exe
の様に、リダイレクトやパイプを使用した後、fgets()などで文字の入力を求めようとしても、
一時停止してくれず、文字の入力が出来ません。

- 解決方法
-
標準入力をコンソールに割り当てることで、fgets()などによる文字の入力ができるようになります。
割り当てにはfreopen()を使用します。
今回は入力ストリームのクリアも行うようにしました。
※Linuxで利用する場合、"CON"ではなく"/dev/tty"として下さい。
無事、リダイレクト/パイプでstdinを使用した後、fgets()で文字の入力を行うことが出来ました。


- 関連Tips
-
リダイレクト/パイプを使用しているか識別する方法
Copyright(C)Frost Moon Project
Home >
Tips >
リダイレクト/パイプでstdinを使用した後、fgets()で文字の入力を行う方法