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);
    
  • 一次读取输入一个字符,并在执行过程中增加一个缓冲区。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 回答