声明输入流
declaring input stream
我有一个C++代码
ifstream myfile;
myfile.open("input");
然后具有如下命令:
myfile.getline(inp,256);
问:如何修改myfile.open("input")
,以便myfile
与cin
关联而不是"input"
?
我不想将所有myfile.getline
命令更改为cin.getline
.
声明myfile=cin
不会编译。
请改用istream&
引用:
std::istream& myfile(std::cin);
将其分离成一个函数,并将std::istream&
作为参数。然后,您可以根据需要在std::cin
和myfile
上执行。
您可以将代码放入一个引用 std::istream 的函数中,例如
void process_data( std::istream & istr )
{ ... }
然后,您可以使用任何 std::ifstream 和 std::cin 调用此函数:
std::ifstream myfile;
...
process_data( myfile );
process_data( std::cin );
如果你坚持使用std::ifstream
你可以替换基本std::istream
的std::streambuf
(std::ifstream
重载rdbuf()
所以你不能直接使用它):
std::ifstream file;
if (use_cin) {
file.std::istream::rdbuf(std::cin.rdbuf());
}
相关文章:
- 如何忽略输入流中的某些字符?
- C++输入流.与 cin unget() 函数有点混淆
- 从输入流中读取行,并能够跳过块
- 使用 Visual Studio 代码读取 C++ 中的输入流时出错
- 处理输入流运算符>>中的无效输入
- 树莓派上的端口音频,找不到输入流的设备
- 如何将C++输入流分隔符包含在结果令牌中
- 如果两个输入流相等,我如何构造主()到输出是
- 使用非成员函数从输入流中提取类对象
- CIN是否将输入流中的无效字符取用
- 动态内存分配和输入(流)运算符C++
- 计算输入流中值的出现次数
- (C++) 学习向量 - 编码/输入流终止/比较向量的问题
- 为什么输入流无法识别 Ctrl D 并给出无限循环
- java 输入流,字节大,然后是 127
- 检查是否为输入流设置了Skipws/noskipws标志
- 从Portaudio到WebRTC :: AudioProcessing馈送输入流
- std::setfill 和 std::setw 用于输入流?
- 将狭窄的输入流重新解释为宽(WCHAR_T)流
- 声明输入流