在Windows中,存在控制台技巧
someprogram.exe < input.txt
使程序在有输入请求时从input.txt获取输入。 我希望我的程序在从另一个文件读取输入时表现不同。有办法吗?怎么样?
答案 0 :(得分:1)
我不这么认为(虽然不确定),但这里有另一种选择(省略错误检查):
int main(int argc, char **argv)
{
std::istream * pstream = &std::cin;
std::ifstream fin;
if (argc > 1)
{
fin.open(argv[1]);
pstream = &fin;
}
// use pstream instead of cin
}
然后将文件名作为命令行参数传递。
答案 1 :(得分:0)
是的,使用大多数平台上提供的功能isatty
。看起来它现在在Windows中被称为_isatty
(不知道为什么)。