编写c++程序,用二进制打开指定的一个文件,在每一行前加行号
请给出程序然后告诉我为什么这样编谢谢了哈~
int main(){int argc,char *argv[])原题中打错了 还有这个具体是什么意思 什么叫它的参数传递操作 展开
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <iomanip>
#include <string>
using namespace std;
void new_line(ifstream& fin,char& temp);
int main(int argc,char *argv[])
{
ifstream fin;
ofstream fout;
int num_line=1;
char temp,inFileName[128];
string buffer;
if(argc==1)
{
printf("请用格式:SetLineNUm filename\n");
exit(0);
}
else
{
strcpy(inFileName,argv[1]);
}
cout<<"正打开输入文件...\n";
fin.open(inFileName); //打开输入文件
if(fin.fail())
{
cout<<"输入文件打开失败!\n";
exit(1);
}
cout<<"正打开输出文件...\n";
fout.open("output.txt"); //打开输出文件
if(fout.fail())
{
cout<<"输出文件打开失败!\n";
exit(1);
}
do
{
new_line(fin,temp);
getline(fin,buffer);
if(buffer.length()>0)
{
fout<<setw(3)<<num_line++<<": "; //设置行号
fout<<buffer;
fout<<endl;
}
} while(!fin.eof());
fin.close(); //关闭文件
fout.close();
cout<<"成功关闭输入输出文件。\n";
cout<<"程序结束。\n";
return 0;
}
void new_line(ifstream& fin,char& temp)
{
do //跳过行首空格和空行
{
fin.get(temp);
}while(isspace(temp));
}
最好把.exe文件和输入文件放在根目录下,因为程序要从控制台传入参数,z在cmd下输入格式为:execname filename (前面为可执行文件,无需后缀名,后面的是输入文件,要后缀名),txt格式下测试通过,二进制的你可以试一下^_^