0

scanf() 関数で無限型指定子 (%c) を使用したい。

例えば-

printf("Enter characters: \t");
scanf("--SPECIFIERS--");

したがって、ユーザーが入力する文字数は明確ではありません。プログラムでユーザーに「文字数」を尋ねたくない..しかし、文字数を許可したい。ただし、scanf() で %c を無限に入力することはできません。誰かがCでそれを行う方法を教えてもらえますか?

4

2 に答える 2

2

scanf() 関数で無限型指定子 (%c) を使用したい。

不特定の量のデータを読み取りたい。あなたが試すことができるいくつかのアプローチがあります:

  • POSIX 標準getline(3)関数を使用する
  • 関数ファミリでPOSIX 標準mの割り当て-割り当てを使用するscanf()

    char *str;
    scanf("%m[^\n]", &str);
    
  • 入力を一度に 1 文字ずつ読み取り、バッファを拡張します。これを行うだけで、stackoverflowに浮かぶいくつかの関数があります

最初の 2 つは、必要なメモリも割り当てますfree(3)

于 2013-10-08T10:41:23.273 に答える
0

%sの修飾子として使用しscanfます。以下のように言及されているもの:

scanf("%s",buf);

buf のタイプは次のとおりです。

char buf[100];
于 2013-10-08T10:38:58.883 に答える