C++程序如何将标准输入重定向为文件输入?
使用环境:MAC终端使用cin语句输入时我已经尝试了『<test.in』但是没有效果,不知为何。。。。...
使用环境:MAC 终端
使用cin语句输入时
我已经尝试了 『 < test.in』但是没有效果,不知为何。。。。 展开
使用cin语句输入时
我已经尝试了 『 < test.in』但是没有效果,不知为何。。。。 展开
2个回答
展开全部
摘自stack overflow:
#include <iostream>
#include <fstream>
#include <string>
void f()
{
std::string line;
while(std::getline(std::cin, line)) //input from the file in.txt
{
std::cout << line << "\n"; //output to the file out.txt
}
}
int main()
{
std::ifstream in("in.txt");
std::streambuf *cinbuf = std::cin.rdbuf(); //save old buf
std::cin.rdbuf(in.rdbuf()); //redirect std::cin to in.txt!
std::ofstream out("out.txt");
std::streambuf *coutbuf = std::cout.rdbuf(); //save old buf
std::cout.rdbuf(out.rdbuf()); //redirect std::cout to out.txt!
std::string word;
std::cin >> word; //input from the file in.txt
std::cout << word << " "; //output to the file out.txt
f(); //call function
std::cin.rdbuf(cinbuf); //reset to standard input again
std::cout.rdbuf(coutbuf); //reset to standard output again
std::cin >> word; //input from the standard input
std::cout << word; //output to the standard input
}
追问
你这是通过修改源程序实现的,用法写的很清楚确实不错,不过还没有达到我的初始目标。你有知道Mac 终端通过外部重定向怎么实现吗?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询