Frost Moon Project

リダイレクト/パイプでstdinを使用した後、fgets()で文字の入力を行う方法 - Frost Moon Project アクセスランキング

Home > Tips > リダイレクト/パイプでstdinを使用した後、fgets()で文字の入力を行う方法

リダイレクト/パイプでstdinを使用した後、fgets()で文字の入力を行う方法

  1. 問題
  2. 解決方法

問題
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()で文字の入力を行う方法