我试图使用scanf
但是当我运行代码时,代码会永远存在。当我停止代码时,我得到了
[完成]退出,代码= 1,在28.291秒
我的问题是我做错了什么?这是我试图执行的代码。我的编辑器是VS代码1.21.0。
#include <stdio.h>
#include <string.h>
int main(){
char midInitial;
printf("What is your middle initial? ");
scanf(" %c", &midInitial);
printf("Middle inital &c ", midInitial);
}
答案 0 :(得分:1)
代码不会永远运行,它正在等待用户完成输入。标准输入是行缓冲的,因此用户必须在scanf()
的字符后键入Enter才能处理它。它将跳过任何空白字符,将第一个非空白字符存储到midInitial
并返回1
。
另一种可能的解释是您使用的环境不支持控制台输入。从Windows中的shell解释器窗口运行程序。
还有一个问题:格式"Middle inital &c "
不正确,请使用%
作为转化说明符。
以下是更正后的版本:
#include <stdio.h>
int main() {
char midInitial;
printf("What is your middle initial? ");
if (scanf(" %c", &midInitial) == 1) {
printf("Middle initial: %c\n", midInitial);
}
return 0;
}
答案 1 :(得分:0)
int main(){char midInitial;
printf(&#34;你的中间名首字母是什么?&#34;);
scanf(&#34;%c&#34;,&amp; midInitial);
printf(&#34; Middle inital%c&#34;,midInitial); (看它应该是%c) }