一度に入力行を受け取り、トークンが2つある行だけを出力するプログラムを作成する必要があります。入力が50バイト以下であると想定します。fgetsを使用して一度に1行をキャプチャし、sscanfを使用して一度にトークンを取得し、2が返されるかどうかを確認しました。ただし、機能していないようです。誰かがそれを行う方法を提案できますか?
#include <stdio.h>
int main(void)
{
char buff[50];
char token[50];
int number;
while (fgets(buff, sizeof(buff), stdin) != NULL)
{
while ((number = sscanf(buff, "%s", token)) != EOF)
{
number = sscanf(buff, "%s", token);
if (number == 2)
{
printf("%s\t", token);
}
}
}
return 0;
}