编写程序,用二进制方式打开指定的一个文件,在每一行前加行号,用C++
时间: 2024-02-17 22:03:56 浏览: 88
下面是一个示例程序,它会打开指定文件,并在每一行前加上行号:
```c++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
string filename;
cout << "Enter the name of the file to open: ";
cin >> filename;
ifstream infile(filename, ios::binary);
if (!infile)
{
cerr << "Failed to open file " << filename << endl;
return 1;
}
int lineno = 1;
char buffer[80];
while (infile.read(buffer, 80))
{
cout << lineno++ << ' ';
for (int i = 0; i < infile.gcount(); i++)
{
cout << buffer[i];
}
cout << endl;
}
if (infile.gcount() != 0)
{
cout << lineno++ << ' ';
for (int i = 0; i < infile.gcount(); i++)
{
cout << buffer[i];
}
cout << endl;
}
infile.close();
return 0;
}
```
该程序首先要求用户输入要打开的文件名,然后使用 ifstream 类打开该文件。如果文件打开失败,则输出错误信息并返回 1。接下来,程序使用一个 while 循环读取文件内容,并在每一行前加上行号。在 while 循环中,程序首先使用 ifstream 类的 read() 函数读取每一行的内容,并将其存储在缓冲区中。然后,程序使用一个 for 循环输出行号和缓冲区中的内容。最后,程序检查最后一行是否已经读取完毕,如果没有,则将其输出。最后,程序关闭文件并返回 0。
阅读全文