如何在C中的scanf()函数中使用无限类型说明符?

时间:2013-10-08 10:30:34

标签: c loops scanf

我想在scanf()函数中使用无限类型说明符(%c)。

例如 -

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

因此不确定用户将输入多少字符。我不希望我的程序向用户询问'字符数'..但我想允许任何字符数。但它不可能在scanf()中输入无限%c。谁能告诉我如何用C做到这一点?

2 个答案:

答案 0 :(得分:2)

  

我想在scanf()函数中使用无限类型说明符(%c)。

您想要读取未指定数量的数据。您可以尝试一些方法:

  • 使用POSIX标准getline(3)功能
  • scanf()系列函数中使用POSIX标准m作业分配

    char *str;
    scanf("%m[^\n]", &str);
    
  • 一次读取一个字符串输入并随时生成缓冲区。在stackoverflow上有一些函数浮动,只做这个

前两个也分配你应该free(3)的内存。

答案 1 :(得分:0)

使用%s作为scanf的限定符。提到的一个如下:

scanf("%s",buf);

其中buf的类型为:

char buf[100];