从二进制文件 record.dat 中读取姓名和成绩,并显示出来。
时间: 2024-02-22 09:55:01 浏览: 84
好的,这是一个涉及文件读取和字符串处理的问题。以下是一个 C++ 的示例代码:
```cpp
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
// 打开文件
ifstream fin("record.dat", ios::binary);
if (!fin) {
cout << "无法打开文件" << endl;
return 1;
}
// 读取数据
char name[20];
int score;
while (fin.read(name, 20) && fin.read(reinterpret_cast<char*>(&score), sizeof(int))) {
// 显示数据
string name_str(name);
name_str.resize(strlen(name)); // 去掉多余空格
cout << name_str << ": " << score << endl;
}
// 关闭文件
fin.close();
return 0;
}
```
这个程序会打开名为 `record.dat` 的二进制文件,每次读取 20 个字节的字符串和一个整数,然后将字符串转换为 `std::string` 类型,并去掉多余的空格,最后将姓名和成绩显示在屏幕上。需要注意的是,这里默认文件中每个记录的姓名长度不超过 20 个字符,如果实际情况不同,需要根据实际情况修改代码。
阅读全文