C++连续连个scanf,第二个scanf无效的原因及解决方法
1. 现象
今天写代码解决问题的时候,发现代码无法停止,首先想着是可能逻辑有错误,代码无限循环了,后面发现循环根本没执行。
从头开始debug发现输入根本没有被接收,简单代码如下:
int main(){
int n;
scanf("%d",&n);
vector<course> vec(n);
int a ,b;
scanf("[%d,%d]",&a,&b);
printf("[%d,%d]",a,b)
}
当运行项目刚输入完第一个scanf时,输入的是1,就直接运行成下面的printf了。
解决方案
最后发现,可能是输入了第一个变量之后,按的回车键,被错误读入了,导致程序无法执行,所以在第一个scan后面加上\n即可