In linux g++ compiler, the third number is not printed, and “reached” is not printed.
But I expected that “reached” will be printed, after that it would go into infinite loop.
It executes as expected on windows using Codeblocks
#include <iostream>
int main()
{
int a;
for (int i = 0; i < 3; i++) {
std::cin >> a;
std::cout << a;
}
std::cout << "reached";
while (1) {}
return 0;
}
Because you are never ending the program, and thus never flushing your stdout (cout) output.
You can either change:
to:
or:
Or simply remove your forever loop.
Another alternative is to use
cerr << "reached";– that will be printed immediately, sincecerris not buffered.