编写一个程序,使用void main(int argc, char* argv[])函数中的参数传递操作的文件名,定义ofstream的对象对文件进行操作,使用read()和write()成员函数读入数据,使用输出流对象输出数据到文件和屏幕
时间: 2024-02-12 22:06:44 浏览: 97
好的,以下是一个简单的程序,可以根据命令行参数操作指定的文件:
```c++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(int argc, char* argv[]) {
// 检查参数个数
if (argc != 2) {
cerr << "Usage: " << argv[0] << " filename" << endl;
return 1;
}
// 打开文件
ofstream ofs(argv[1], ios::binary);
if (!ofs) {
cerr << "Failed to open file: " << argv[1] << endl;
return 2;
}
// 读入数据
string input;
cout << "Please input some text:" << endl;
getline(cin, input);
// 写入文件
ofs.write(input.c_str(), input.size());
// 输出到屏幕
cout << "Data written to file \"" << argv[1] << "\":" << endl;
cout << input << endl;
// 关闭文件
ofs.close();
return 0;
}
```
以上代码会检查命令行参数个数是否为2,如果不是,则输出用法信息并返回错误码1。接着,程序会尝试打开指定的文件,如果失败则输出错误信息并返回错误码2。如果文件打开成功,则程序会从标准输入读入一行文本,然后使用`ofstream::write()`函数将该文本写入文件。最后,程序会输出写入的文本到屏幕,并关闭文件。
请注意,以上代码并不是最优的实现方式,只是提供了一个简单的示例。在实际开发中,需要考虑更多的错误处理和边界条件判断。
阅读全文