编写c++程序,用二进制打开指定的一个文件,在每一行前加行号

2024-12-21 23:04:02
推荐回答(1个)
回答1:

#include 

#include 

#include 

#include 

#include 

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<

    fout<

      fout<

  }

} 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格式下测试通过,二进制的你可以试一下^_^