【发布时间】:2011-12-30 09:28:23
【问题描述】:
我遇到了与链接问题中提到的相同的问题。控制台窗口(在 VS 2010 中)在运行程序后立即消失。我使用 cin.get();在 main 函数结束时,但问题仍然存在。关于可能的原因有什么想法吗?您可以查看 main 中的代码:
int main()
{
const int arraysize = 10;
int order;
int counter;
int a[arraysize] = {2,6,4,45,32,12,7,33,23,98};
cout<<"Enter 1 to sort in ascending order\n"
<<"Enter 2 to sort in descending order\n";
cin>>order;
cout<<"Data items in original order\n";
for(counter=0;counter<arraysize;counter++){
cout<<setw(4)<<a[counter];
}
switch (order){
case 1: cout<<"\nData items in ascending order\n";
selectionSort(a, arraysize, ascending);
break;
case 2: cout<<"\nData items in descending order\n";
selectionSort(a, arraysize, descending);
break;
default: return 0;
}
for(counter=0;counter<arraysize;counter++){
cout<<setw(4)<<a[counter];
}
cout<<endl;
cin.get();
return 0;
}
链接:C++ on Windows - the console window just flashes and disappears. What's going on?
【问题讨论】:
-
您是否在调试器中运行此程序以检查 a) 它是否到达
cin.get()行和 b) 它是否在该行等待输入? -
如果
default: return 0;被击中怎么办? -
我已经进行了调试,似乎没有等待输入。克里斯F你是对的。但我仍然无法弄清楚原因。
-
在这种情况下,请在调试器上单步执行整个程序,看看为什么不这样做。我怀疑@sharptooth 是正确的。
-
Sharptooth 是正确的,但如果 order 为 1 或 2,则仍会重现该行为。我更新了我的答案。
标签: c++ visual-studio-2010 visual-c++ console-application