有没有办法确定输入是否从文件流入程序?

时间:2012-03-18 16:10:45

标签: c++

在Windows中,存在控制台技巧

someprogram.exe < input.txt

使程序在有输入请求时从input.txt获取输入。 我希望我的程序在从另一个文件读取输入时表现不同。有办法吗?怎么样?

2 个答案:

答案 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(不知道为什么)。