我正在尝试多次使用 freopen() 来读取和关闭不同的文件。所以这就是我在我的主要功能中所做的:
if (argc != 5) {
std::cerr << "Wrong format of arguments given." << endl;
return -1;
}
std::string command, command2;
freopen(argv[1], "r", stdin);
// do something...
fclose(stdin);
freopen(argv[2], "r", stdin);
freopen(argv[3], "w", stdout);
while (std::cin >> command) {
std::cin >> command2;
// run some function...
}
fclose(stdin);
fclose(stdout);
但事实证明,第一部分// do something...
工作正常(读取std::cin
没有问题),但第二部分的 while 循环似乎没有运行。输入文件的格式正确,所以我不知道为什么std::cin >> command
返回 false。