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

萌新关于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条)

报告相同问题?

悬赏问题

  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python