C++ 文本文件 I/O

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

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

在 C++ 中,我如何从一个文本文件中读取两个数字并将它们输出到另一个文本文件中? 另外,我应该把输入文件放在哪里?就在项目目录?我需要已经有输出文件吗?还是会创建一个?

最佳答案

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

读写两个数字可以非常简单:

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)更新模式,您可以在其中读取现有数据并写入新数据。

关于C++ 文本文件 I/O,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4954792/

相关文章:

c++ - 为什么缩小不影响重载分辨率?

c++ - CX0030 : Error: Expression cannot be evaluated

c++ - 为什么我的 DLL 不需要 DllMain 函数?

c++ - 使用 union 在具有共同初始序列的两个结构之间进行转换是否合法且定义明确的行为(参见示例)?

c# - StreamWriter.Flush() 和 StreamWriter.Close() 有什么区别?

python - 如何在Python中读取ascii header 后的二进制数据

c++ - 如何doxygen注释Qt属性?

database - 如何将视频存储在 PostgreSQL 数据库中?

c++11 - 为什么 std::back_inserter 迭代器在范围 3 中不是弱增量的?

C++11:decltype((x)) 和 decltype((x+1)) 的类型不同?