我试图在文件中输入一些数字,因此创建了一个while循环。输入值后,我会询问用户是否希望重复此过程。但是,程序只打印第二个printf语句,while循环终止。该计划是:
git commit --amend # this will create a new patch
git push gerrit HEAD:refs/for/your_branch
为什么第二次扫描无效?
答案 0 :(得分:3)
这是因为输入缓冲区中有一个剩余的换行符。
您可以通过在%c
scanf()
之前提供空格来消费它
scanf(" %c", &ch);
作为旁注
1)请使用main()
的标准定义,不要使用命令行参数
int main(void)
2)检查fopen()
,scanf()
和其他函数调用的返回值。
答案 1 :(得分:0)
scanf("%c", &ch);
应该是
scanf(" %c", &ch);
请注意%c
之前的空格。扫描整数(a)时有一个换行符,由%c
拾取,因此您需要使用空格去掉它。