Does "cout<<(char*)NULL" doing "close(1)" here?
c++, unix
Solution
Here you sets the `badbit` on the stream which causes nothing to be printed after `cout<<(char*)NULL;`
if (!__s)
__out.setstate(ios_base::badbit);
The standard says: `requires: shall not be a null pointer`. So your program definitely has the undefined behavior and it should be fixed. You can clear the bad bit by using `cout.clear()`.
In your case, `cout<<(char*)NULL;` causes undefined behavior. But GCC plays it safely.
Hope this helps!
Problem
In the following code I have used `cout<<(char*)NULL;` after this line, my program printing nothing to the output screen. Does it mean I have done `close(1)` with `cout` here? What is actually happening here? Is this a bug? Please share your thoughts. ``` #include<iostream> using namespace std; void f(){ cout<<"\nfun\n"; } main(){ cout<<(char*)NULL; f(); //not getting printed ! cout<<"\nhello\n"; //not getting printed ! cout<<"hii how are you?"; //not getting printed, why?? } ``` I have tried this with both gcc and DevCpp compilers, same behavior observed.