コマンドラインでstdinから任意の長さの行を一度に読み込もうとしています。私はGNUのreadlineを含めることができるかどうか分からず、ライブラリ関数を使うことを好むだろう。改行が見つかるまで、stdinから行を読み込む方法は?
私が読んだドキュメントには、getline
が動作しなければならないことが示唆されていますが、私の実験ではブロックされません。私のサンプルプログラム:
#include <stdio.h>
int main()
{
char *line = NULL;
if (getline(&line, NULL, stdin) == -1) {
printf("No line\n");
} else {
printf("%s\n", line);
}
return 0;
}
がNo line
を生成し、ユーザーの入力を受け付けることが適しません。
どうすればよいですか?私はそれが自明であるべきであることを知っているが、私はそれを理解することができなかった。
'getline()' *は*ブロックします( 'stdin'でテスト済み)。サンプルコードを投稿できますか? – LSerni
[Cでコンソールから行を読み込む方法](http://stackoverflow.com/questions/314401/how-to-read-a-line-from-the-console-in-c) –