如何使用scanf读取空格?

时间:2013-02-21 05:15:49

标签: c whitespace

它在看到空格后完全停止读取代码。如何更改我的代码,使其读入空格

char line[300];

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

我试图通过重定向输入的字符串是:

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

4 个答案:

答案 0 :(得分:2)

您可以使用fgets代替scanf。例如:

    fgets(line, 1024, stdin);

答案 1 :(得分:2)

您应该使用先前发布的fgets(line, size, stdin);。你永远不应该使用gets(),因为它每次都需要相同的输入大小。编译器,至少是gcc,会警告你不要使用它。

答案 2 :(得分:0)

%s匹配一系列非空白字符;下一个指针必须是指向char的指针,并且该数组必须足够大才能接受所有序列和终止NUL字符。输入字符串在空格或最大字段宽度处停止,以先到者为准。

需要选择不同的格式字符串。从你的输入字符串中可以清楚地知道你究竟想要完成什么。

答案 3 :(得分:-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 . . .