0

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

char line[300];

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

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

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

4

4 回答 4

2

您可以使用 scanf 的 fgets intsead。例如:

    fgets(line, 1024, stdin);
于 2013-02-21T05:24:04.770 回答
2

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

于 2013-02-23T00:50:19.417 回答
0

%s 匹配一系列非空白字符;next 指针必须是指向 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 回答