c++ - 使用输入重定向,如何在C中读取文件并获取字符串?

标签 c++

我有一个文件,我希望我的程序使用来自命令行的输入重定向来读取该文件。例如,a.out < file.dat .然后我打算使用 cin.get()并将字符放入数组中。

我不想对任何输入文件名进行硬编码,我已经在一些现有帖子中看到过这种情况。如果我将此输入重定向视为 stdin ,我必须明确打开我的文件吗?

int main (int argc, char *argv[])
{

  string filename;
  ifstream infile;

  cin >> filename;  

  do {               

  int c = 0; 
  c = infile.get();  //need to get one character at a time
                     //further process


} while ( ! infile.eof());

最佳答案

你可以只使用cin ,这是与 stdin

关联的流缓冲区
#include <iostream>

int main()
{
    char c;
    while (std::cin.get(c))
    {
        std::cout << c << std::endl; // will print out each character on a new line
    }
    exit(0);
}

关于c++ - 使用输入重定向,如何在C中读取文件并获取字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13559462/

相关文章:

c++ - 串行通信 - 我无法将传入的 char 数组转换为 int

C++ --- getline 和 cinignore() 删除输出字符串中的第一个字符

c++ - "dynamic comparator"在 C++ 中可用吗

c# - BSTR (COM) 的长度

c++ - 将数字放入不同的堆中

c++ - QEventLoop 处理所有事件

具有 const 限定符的自由函数类型的 C++ 特化

c++ - 创建箭头类

c++ - C++ 中一组简单字符的问题

c++ - 我可以对同一项目中的某些文件使用不同的 .clang_format 吗?