scanfを介して1つのプログラムでフィルタリングされた入力を取得しました。数字と大きな文字+スペースだけを読みたい。
最近、私はそのようなことをしようとしていましたが、無限ループに陥り、まだ最初の入力しか出力していませんでした。についてfgets()
は知っていますが、これが機能したことは知っています。問題がどこにあるのかわかりません。これは単純化された状況です。私に何が起きたのか?
#include <stdio.h>
#include <string.h>
int main()
{
char str[21];
do
{
scanf("%20[0-9A-Z ]", str);
printf("%s\n", str);
} while(strcmp("END", str) != 0);
return 0;
}
編集:私は言及するのを忘れていました、入力は有効です、入力のために:「HELLO」プログラムは立ち往生しています...そしてscanf
最初の入力に対してのみ1を返し、他の人は0を返します。そして私も試しfflush(stdin)
ました、読んだ後...