📚 输入输出流的概念
在C++中,输入输出流是用于在程序和外部设备(如键盘、显示器、文件等)之间进行数据传输的机制。输入流用于从外部设备读取数据到程序中,输出流用于将程序中的数据输出到外部设备。
C++中的输入输出流分别通过iostream
库提供的cin
和cout
对象来实现。cin
用于输入流,cout
用于输出流。我们可以使用它们来进行标准输入和输出。
示例:
#include <iostream>
using namespace std;
int main() {
int num;
cout << "请输入一个整数: ";
cin >> num;
cout << "您输入的整数是: " << num << endl;
return 0;
}
在上述示例中,我们使用cout
对象向控制台输出提示信息,使用cin
对象从控制台读取用户输入的整数,并使用cout
对象输出用户输入的整数。
🗂️ 文件流的概念
除了与标准输入输出相关的流外,C++还提供了文件流用于进行文件的读写操作。文件流通过fstream
库提供的ifstream
和ofstream
类来实现。ifstream
用于读取文件内容,ofstream
用于写入文件内容。
要使用文件流进行文件操作,首先需要打开文件。打开文件时需要指定文件的路径和打开方式。打开方式包括读取模式(ios::in
)、写入模式(ios::out
)、追加模式(ios::app
)等。
示例:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ofstream file("example.txt"); // 打开文件 example.txt,用于写入
if (file.is_open()) {
file << "Hello, File!" << endl; // 向文件写入数据
file.close(); // 关闭文件
cout << "文件写入成功。" << endl;
} else {
cout << "无法打开文件。" << endl;
}
return 0;
}
在上述示例中,我们使用ofstream
类创建了一个文件流对象file
,并将其与文件example.txt
关联。然后,我们使用file
对象向文件中写入数据,并在写入完成后关闭文件。
📁 文件操作
✨文本文件
文本文件是由字符组成的文件,可以使用普通的文本编辑器打开查看。在C++中,我们可以使用文件流进行文本文件的读写操作。
🔏 写文件
要向文本文件写入数据,我们需要使用ofstream
类创建一个文件流对象,并将其与文件关联。然后,可以使用流插入运算符<<
将数据写入文件。
示例:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ofstream file
("example.txt"); // 打开文件 example.txt,用于写入
if (file.is_open()) {
file << "Hello, File!" << endl; // 向文件写入数据
file << "这是一个文本文件示例。" << endl;
file.close(); // 关闭文件
cout << "文件写入成功。" << endl;
} else {
cout << "无法打开文件。" << endl;
}
return 0;
}
在上述示例中,我们向文件example.txt
写入了两行文本数据。
🔏 读文件
要从文本文件读取数据,我们需要使用ifstream
类创建一个文件流对象,并将其与文件关联。然后,可以使用流提取运算符>>
从文件中读取数据。
示例:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream file("example.txt"); // 打开文件 example.txt,用于读取
if (file.is_open()) {
string line;
while (getline(file, line)) { // 逐行读取文件内容
cout << line << endl; // 输出读取的数据
}
file.close(); // 关闭文件
} else {
cout << "无法打开文件。" << endl;
}
return 0;
}
在上述示例中,我们使用ifstream
类创建了一个文件流对象file
,并将其与文件example.txt
关联。然后,我们使用getline
函数逐行读取文件内容,并将每行数据输出到控制台。
✨二进制文件
二进制文件是由二进制数据组成的文件,不能直接用文本编辑器打开查看。在C++中,我们可以使用文件流进行二进制文件的读写操作。
🔏 写文件
要向二进制文件写入数据,我们需要使用ofstream
类创建一个文件流对象,并将其与文件关联。然后,可以使用write
函数将数据写入文件。
示例:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ofstream file("data.bin", ios::binary); // 打开二进制文件 data.bin,用于写入
if (file.is_open()) {
int data[] = {10, 20, 30, 40, 50};
int size = sizeof(data) / sizeof(data[0]);
file.write(reinterpret_cast<char*>(&data), sizeof(data)); // 写入数据
file.close(); // 关闭文件
cout << "二进制文件写入成功。" << endl;
} else {
cout << "无法打开文件。" << endl;
}
return 0;
}
在上述示例中,我们向二进制文件data.bin
写入了一个整型数组。
🔏 读文件
要从二进制文件读取数据,我们需要使用ifstream
类创建一个文件流对象,并将其与文件关联。然后,可以使用read
函数从文件中读取数据。
示例:
#include <iostream>
#include <fstream>
using namespace
std;
int main() {
ifstream file("data.bin", ios::binary); // 打开二进制文件 data.bin,用于读取
if (file.is_open()) {
int data[5];
file.read(reinterpret_cast<char*>(&data), sizeof(data)); // 读取数据
file.close(); // 关闭文件
int size = sizeof(data) / sizeof(data[0]);
for (int i = 0; i < size; i++) {
cout << data[i] << " "; // 输出读取的数据
}
cout << endl;
} else {
cout << "无法打开文件。" << endl;
}
return 0;
}
在上述示例中,我们从二进制文件data.bin
中读取了一个整型数组,并将其输出到控制台。
🔚总结
本次学习笔记介绍了C++中的文件操作。我们学习了文本文件和二进制文件的读写操作。通过文件流,我们可以方便地进行文件的输入输出,并且可以根据需要选择适合的读写模式。
文件操作在实际开发中非常常见,可以用于读取配置文件、保存数据等应用场景。掌握文件操作的基础知识对于提高程序的功能和灵活性非常重要。
希望本次学习对你有所帮助,继续加油!🚀
⭐️希望本篇文章对你有所帮助。
⭐️如果你有任何问题或疑惑,请随时向提问。
⭐️感谢阅读!