C++文件操作:从in.txt读取并写入out.txt

需积分: 10 0 下载量 35 浏览量 更新于2024-09-15 收藏 56KB DOC 举报
"C++_中关于文件的读入和输出" 在C++编程语言中,文件的读入和输出是程序与外部数据交互的重要部分。本文将详细讲解如何在C++中实现文件的读写操作。 ### 文件读入 #### 1. 使用`ifstream`进行读取 `ifstream`(Input File Stream)类是C++标准库中用于处理文件输入的流类。通过创建一个`ifstream`对象并调用`open()`函数来打开一个文件进行读取。例如: ```cpp #include <fstream> #include <iostream> int main() { std::ifstream inf("in.txt"); if (!inf) { std::cerr << "无法打开输入文件!" << std::endl; return -1; } // 读取文件内容 std::string line; while (std::getline(inf, line)) { std::cout << line << std::endl; } inf.close(); return 0; } ``` 在这个例子中,我们使用`getline()`函数从文件中逐行读取数据。`getline()`接受两个参数:输入流对象和一个字符串变量,用于存储读取的行内容。 #### 2. `noskipws`标志 在示例代码中,`inf >> noskipws`用于取消默认的跳过空白字符的行为,这样可以读取包括换行符在内的所有字符。 ### 文件输出 #### 1. 使用`ofstream`进行写入 `ofstream`(Output File Stream)类负责文件的输出操作。创建一个`ofstream`对象并调用`open()`函数打开文件以写入数据。例如: ```cpp #include <fstream> #include <iostream> int main() { std::ofstream outf("out.txt"); if (!outf) { std::cerr << "无法打开输出文件!" << std::endl; return -1; } // 写入数据 outf << "这是第一行" << std::endl; outf << "这是第二行" << std::endl; outf.close(); return 0; } ``` 在这个例子中,我们使用`<<`运算符向文件写入文本。 ### 方法二:逐字符读取与写入 在提供的代码片段中,除了逐行读取之外,还展示了如何逐字符读取文件内容。通过`ifstream`的`>>`运算符可以读取单个字符。例如: ```cpp char c; while (inf >> c) { if (c == '\n') { outf << "\n\n"; std::cout << "\n\n"; } else { outf << c; std::cout << c; } } ``` 这里,我们不再使用`getline()`,而是直接读取单个字符。当读到换行符`\n`时,我们在输出文件和控制台添加两行空行。 ### 总结 C++中的文件操作涉及`fstream`库,主要通过`ifstream`和`ofstream`类进行文件的读写。`getline()`函数用于按行读取,而`>>`运算符可以用来逐字符或按指定数据类型读取。在写入时,同样使用`<<`运算符将数据输出到文件。确保在完成文件操作后调用`close()`关闭文件,防止数据丢失或损坏。理解这些基本概念对于任何C++开发者来说都是至关重要的。