gpt4 book ai didi

c - 扫描一个变量并在 do while 循环中使用它

转载 作者:太空宇宙 更新时间:2023-11-04 07:29:27 25 4
gpt4 key购买 nike

#include <stdio.h>
void main()
{
char ans='n';
do
{
printf("\n Enter yes or no:");
scanf("%c",ans);
printf("\n entered %c",ans);
}while(ans == 'y');
}

当循环被执行并且 scanf 正在工作并打印我的答案(假设我的答案是 y)时,它会第二次出现但没有进行扫描并退出。我可以知道这是为什么吗?为什么会发生这种情况以及处理无限循环的正确方法是什么。

最佳答案

首先,您在 scanf 中遗漏了一个 &:

scanf("%c", &ans);
^

其次,您没有处理换行符,%c 格式说明符不会忽略空格。所以你读取一个字符,按下回车键,下一个scanf 立即被那个\n 满足。要忽略 scanf 中的空白,请尝试:

scanf(" %c", &ans);
^

关于c - 扫描一个变量并在 do while 循环中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15219401/

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