How to know when there is input through the terminal pipe line on C++ 11?
I may call my program like this:
- ./main.o solved.txt
- cat unsolved.txt | ./main.o
- cat unsolved.txt | ./main.o solved.txt
I am using this to know whether I need to read data from the pipe line or not on C++ POSIX Standard:
// If it is passed input through the terminal pipe line, get it.
if( !isatty( fileno( stdin ) ) )
{
// Converts the std::fstream "std::cin" to std::stringstream which natively supports
// conversion to string.
inputedPipeLineString << std::cin.rdbuf();
printf( "inputedPipeLineString: %s", inputedPipeLineString.str() );
}
But now I want to use the C++ 11 Standard, and my loved fileno
and isatty
are out of it. So there is an alternative to them on the C++ 11?
Aucun commentaire:
Enregistrer un commentaire