gpt4 book ai didi

c - C语言中的while循环

转载 作者:行者123 更新时间:2023-12-02 06:57:45 26 4
gpt4 key购买 nike

谁能向我解释为什么当我输入字符“Q”时我的 while 循环不会结束?即使当用户输入“Q”时我将我的 bool 值设置为 false,它仍然在循环,它应该在 char input 的 scanf 之后结束。

我的代码:

#include <stdio.h>
typedef int bool;
#define true 1
#define false 0

int main(void) {
char input;
char output;
bool tf = true;

printf("Welcome to the Coder!\n");

while (tf) {
printf("Choose Input (H,A,B,Q) : ");
scanf_s(" %c\n", &input);

if (input == 'Q') {
tf = false;
}
else {
printf("Choose Output (H,A,B) : ");
scanf_s(" %c\n", &output);
}
}

return 0;
}

最佳答案

问题是 scanf_s 的奇怪情况。根据MSDN ,您使用此语法读取单个字符:

scanf_s(" %c", &input, 1);

scanf_s 中删除 \n 并添加 1 个参数,这样它就知道只读取 1 个字符。

关于c - C语言中的while循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27894961/

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