「point%d%d」のような形式の行を一致させようとしています。したがって、これら2つの整数を2つだけ必要とする場合、「ポイント」はフォーマット文字列にハードコーディングされます。scanfのLinuxのマニュアルページを読んでいることを理解しているので、これは正しく機能するはずです。
次のコード、私が使用したい方法、scanfへの最初の呼び出しは機能しますが、次の呼び出しscanfはエラーコードを返し、stdinからそれ以上の数値を取得することはありません(scanfはstdinからの入力を待つことをブロックしません):
for (;;)
{
scanf("point %d %d", &x, &y);
printf("=> point %d %d\n", x, y);
}
このようにして、すべてが期待どおりに機能します。
int x, y;
char s[10];
for (;;)
{
scanf("%s %d %d", s, &x, &y);
printf("=> point %d %d\n", x, y);
}
私が誤解している可能性があることについての提案はありますか?
ありがとう。