I/O 重定向在C++中是什么意思

What does I/O redirection mean in C++?

本文关键字:是什么 意思 C++ 重定向      更新时间:2023-10-16

我的程序需要正确处理以下命令行参数。但我不明白那是什么或如何实现它。

main.exe < test.txt

测试.txt文件包含:

类型计数:20
固体:6
其他: 0

在 shell 脚本中,"<"意味着文件的内容或右侧程序的输出(在您的情况下为文本.txt)将通过标准输入(C++ 中的 std::CIN)传递到左侧。这意味着您可以使用 std::cin 直接读取文件。

还有其他像">"这样的元素,它使左边的标准输出成为右边的元素。

操作系统中的进程具有用于输入和输出数据的IO功能。c++ 中的标准输入与 std::cin 相关联,标准输出与 std::cout 相关联,标准错误与 std::cerr 相关联。

在 Linux 中,提供的语法意味着您将在标准输入中获取文件内容。然后,您可以使用该路径加载文件并执行需要对其执行的任何操作。

int main(void)
{
   std::string file, line;
   while (std::getline(std::cin, line))
   {
     file += line;
     file += "n";
   }
   //Do what you need to do here with file contents
   return 0;
}

编辑:基于评论的几个调整,自从我需要实际编写这样的 Linux 程序以来已经有一段时间了。