刚开始在CS 221课程中学习C / C ++。
这是我的代码的开头:
.cc
无法将我的头部缠绕在char数组,stdin和c中的缓冲区中。为什么上面的代码会跳过用户输入名称?我需要fflush吗?无法实现这一目标。
答案 0 :(得分:0)
不确定为何使用
scanf("%4i", id);
但请尝试:
scanf("%d", &id );
这解决了%4i
格式的问题,并将其替换为%d
的“十进制整数”格式。
这也解决了, id);
的问题,因为这样写的,不会允许存储id,并且肯定会崩溃。
如果您遇到数字问题而导致数据类型过大,可能会检查数据类型int
的边界,这些边界将是特定于平台的。
同样改变:
scanf("%99[^\n]",name);
为:
scanf("%s\n",name);
这将获取用户通过scanf输入的数据,并将其解释为“字符串”并将其正确放入name
。