C ++文本文件I / O.

时间:2011-02-10 08:21:25

标签: c++ file-io c++11

这是一个非常简单的问题,但无论我在哪里,我都会得到一个不同的答案(这是因为它已被更改或将在c ++ 0x中更改?):

在c ++中如何从文本文件中读取两个数字并将其输出到另一个文本文件中? 另外,我在哪里输入输入文件?就在项目目录中?我需要已经有输出文件吗?或者会创建一个?

3 个答案:

答案 0 :(得分:2)

您可能会得到不同的答案,因为有很多不同的方法可以做到这一点。

读取和写入两个数字非常简单:

std::ifstream infile("input_file.txt");
std::ofstream outfile("output_file.txt");

int a, b;
infile >> a >> b;
outfile << a << "\t" << b;

您(显然)需要将“input_file.txt”替换为真实文本文件的名称。如果需要,可以使用绝对路径或相对路径指定该文件。如果您只指定文件名而不是路径,则意味着它将在“当前目录”中查找该文件(可能与包含可执行文件的目录相同或不同)。

如上所述打开文件只是为了写入时,默认情况下,任何现有数据都将被删除,并替换为您编写的内容。如果不存在该名称的文件(并且您可以再次指定文件的路径),则将创建一个新文件。您还可以指定追加模式,将新数据添加到现有文件的末尾,或者(对于std::fstream)更新模式,您可以在其中读取现有数据并写入新数据。

答案 1 :(得分:1)

如果你的程序是一个过滤器,即它从某个地方读取东西,并在其他地方输出东西,你将受益于使用标准输入和标准输出而不是命名文件。它允许您轻松使用shell重定向来使用文件,保存程序以处理所有文件操作。

#include <iostream>

int main()
{
    int a, b;
    std::cin >> a >> b;
    std::cout << a << " " << b;
}

然后从shell中使用它。

> cat my_input_file | my_program > my_output_file

答案 2 :(得分:0)

放入与可执行文件相同的文件夹。或者您可以使用文件路径指向它。

如果它不存在,可以创建它。