酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

定义 bindata类,构造时如提供了文件名,则在构造函数中打开文件,并按二进制方式读取最多10个整数存入私有成员变量int data[20)中。文件的格式是:整数按二进制方式保存在文件中,每个整数占用4字节。bindata 类不必保存文件名。析构时不保存数据。增加成员函数void savedata(const string s),功能是按下标顺序,将数据以二进制方式保存到s 指定的文件中。为输出方便,可以重载插入符。 提示):二进制文件,打开时必须指定二进制。二进制文件不存在换行的概念提示(2:二进制文件的读写,分别用成员函数 read. write,不能使用提取符或插入符 提示(3:读取后,注意判断流状态,什么样的流状态才表示读到了数据?

```cpp #include <iostream> #include <fstream> #include <string> using namespace std; class bindata { private: int data[20]; public: bindata(const string filename = "") { if (filename != "") { ifstream file(filename, ios::binary); if (file) { for (int i = 0; i < 20; i++) { if (!file.read(reinterpret_cast<char*>(&data[i]), sizeof(int))) { break; } } file.close(); } } } void savedata(const string s) { ofstream file(s, ios::binary); if (file) { for (int i = 0; i < 20; i++) { file.write(reinterpret_cast<char*>(&data[i]), sizeof(int)); } file.close(); } } friend ostream& operator<<(ostream& os, const bindata& bd) { for (int i = 0; i < 20; i++) { os << bd.data[i] << " "; } return os; } }; int main() { bindata bd("data.bin"); cout << bd << endl; bd.savedata("output.bin"); return 0; } ``` [2024-06-01 15:35:51 | AI写代码神器 | 754点数解答]

相关提问