C 而在一个循环中循环打印两次
所以我有一个小while循环,它似乎在一次运行中打印我的文本两次 下面是代码:C 而在一个循环中循环打印两次,c,C,所以我有一个小while循环,它似乎在一次运行中打印我的文本两次 下面是代码: int main(void){ char cont; int check = 1; while(check == 1){ printf("Something"); cont = getchar(); if(cont == 'j') check = 1; } } 现在这个的输出是: 现在它正在等待输入 某物,某物,等待输入 在第一次打印后,当我按j时,它将打印两次 这是为什么?您按下“j
int main(void){
char cont;
int check = 1;
while(check == 1){
printf("Something");
cont = getchar();
if(cont == 'j')
check = 1;
}
}
现在这个的输出是:
现在它正在等待输入
某物,某物,等待输入
在第一次打印后,当我按j时,它将打印两次
这是为什么?您按下“j”和“换行符”,所以您键入了两个字符,循环执行两次,然后开始读取下一行。这是一个无限循环。始终重新检查您的程序 也许你想要
if(cont == 'j')
check = 0;
您的代码被困在循环中,因为您测试check==1,并且check始终为1 你可以把另一部分做出来
if(cont == 'j')
check = 1;
else
check =0;
+一个好的答案,不知道为什么投反对票。也许可以添加一些关于stdin缓冲特性的内容?