我希望读取所有输入的文本,直到输入一个新行字符为止。
这是我的代码。
但是当我尝试执行时,它只读取一个单词。
我也尝试过
这是我的代码。
int i=0;
char ch[MAX];
printf("Enter the text\n");
while(true)
{
scanf("%c",&ch[i]);
if(ch[i]=='\n')
break;
i++;
}
但是当我尝试执行时,它只读取一个单词。
我也尝试过
scanf("%s",ch);
,但结果相同。
gets()
绝不能被推荐。它是危险的。 - unwindscanf("%[^\n]",ch);getchar();
。 - Spikatrixscanf()
返回的字符;你应该始终检查它是否返回了你期望的内容。你还应该检查输入是否超过了ch
的长度,以免出现缓冲区溢出(在这种情况下,当然会导致堆栈溢出)。 - Jonathan Leffler