gpt4 book ai didi

c - scanf 导致我的代码永远运行

转载 作者:行者123 更新时间:2023-11-30 14:49:49 24 4
gpt4 key购买 nike

我试图使用scanf,但是当我运行代码时,代码会永远持续下去。当我停止代码时,我得到

[Done] exited with code=1 in 28.291 second

我的问题是我做错了什么?这是我试图执行的代码。我的编辑器是 VS code 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);
}

最佳答案

代码不会永远运行,它正在等待用户完成输入。标准输入是行缓冲的,因此用户必须在 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;
}

关于c - scanf 导致我的代码永远运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49350182/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com