氯的平方 2019-09-19 13:15 采纳率: 100%
浏览 255
已采纳

萌新关于scanf()函数使用%s转换说明时遇到的问题

#include
int main(void)
{
int a,b,c;
char d[40];
a=scanf("%s\n",d);
b=printf("%s YES\n",d);
printf("%d\n%d",a,b);
getchar();

}

为什么在我的代码执行时,假如我输入Hello World后回车,为什么输出来的字符串里没有Hello后的空格以及world,

在c primer 中的第94页说如果使用%s转换说明,scanf会读取所有除了空白以外的字符。
不知道是我理解错了,还是我的编译器的问题(或者我的代码打错了)
救就孩子,大一新生,我太难了

  • 写回答

3条回答 默认 最新

  • 乐hh 2019-09-19 14:24
    关注

    scanf遇到空格、回车、tab就停止读取了。可以这样写scanf("%[^\n]", d),就可以忽略空格等分隔符,遇到回车才停止读取。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?