我正在编写一个C程序,它接受字符串输入并在单独的行中打印每个单词。但即使在按下回车后程序也没有停止。请提出解决方案。
#include<stdio.h>
#include<string.h>
int main(void)
{
char str[50];
while(scanf("%s",str)&&strcmp(str,"\n"))
printf("%s\n",str);
}
答案 0 :(得分:0)
您需要使用fgets来读取该行,如果输入只是一个字符,这是一个换行符,那么中断继续。
while(fgets(str,sizeof(str),stdin))
{
if(strcmp(str,"\n") == 0)
break;
else
{
size_t n = strlen(str);
if(n>0 && str[n-1] == '\n')
str[n-1] = '\0';
printf("%s\n",str);
}
}
PS:fgets()
附带换行符,我们需要压制换行符,如上所示。