我有以下代码:
int main()
{
int i = 0;
cout << i; //why is i not printed even though it is before the exception?
int j = 1 / i; //divide by 0
j++;
cout << i << j;
return 0;
}
为什么不打印i
?它应该打印,因为它是在异常发生之前。
但是什么都没有印刷,我只是得到了例外。
有什么想法吗?
答案 0 :(得分:3)
这可能是因为流没有被刷新。在某些平台上,它会在每次输出后刷新,但在其他平台上则不会刷新。
所以,如果你冲洗它,你将获得0
作为输出:
cout << i << flush; // 'flush' flushes the stream = displays everything immediately
答案 1 :(得分:-1)
我认为你可以参考这个函数puts(s)
,你可以写这个样本:
int main()
{
char a[20];
int b = 1;
while(b>10)
{
gets(a);
puts(a);
b++;
}
return 1;
}
你会发现它们在所有输入完成后输出,所以输出有一个缓冲区。