0

スペースを見つけた後、コードの読み取りを完全に停止します。空白で読み取るようにコードを変更するにはどうすればよいですか

char line[300];

printf("Enter a string to be checked: ");
scanf("%s", line);

リダイレクト経由で入力しようとしている文字列は次のとおりです。

( ( aa ) < > [ [ [ { [ x ] ]] <>)

4

4 に答える 4

2

fgets(line, size, stdin);以前に投稿したとおりに使用する必要があります。gets()毎回同じ入力サイズを想定しているため、決して使用しないでください。コンパイラー、少なくとも gcc は、それを使用しないように警告します。

于 2013-02-23T00:50:19.417 に答える
2

scanf の intsead で fgets を使用できます。例えば:

    fgets(line, 1024, stdin);
于 2013-02-21T05:24:04.770 に答える
0

%s 非空白文字のシーケンスに一致します。次のポインターは char へのポインターである必要があり、配列はすべてのシーケンスと終端の NUL 文字を受け入れるのに十分な大きさである必要があります。入力文字列は、空白または最大フィールド幅のいずれか早い方で停止します。

別のフォーマット文字列を選択する必要があります。入力文字列からは、正確に何を達成しようとしているのか明確ではありません。

于 2013-02-21T05:19:14.123 に答える
-1

コードを確認してください..

  printf("Enter a string to be checked: ");
    gets( line);
    puts(line);

出力:-

Enter a string to be checked: ( ( a a ) < > [ [ [ { [ x ] ]]] <>)
( ( a a ) < > [ [ [ { [ x ] ]]] <>)
Press any key to continue . . .
于 2013-02-21T05:23:10.610 に答える