none
为什么结果文件后面会多出空行? RRS feed

  • 问题

  • #include <iostream>
    #include <fstream>
    #include <string.h>
    #include <stdlib.h>
    using namespace std ;

    int   main(int   argc,char   **argv)
    {
      char c ;
      int count ;
      char buffer[520];

      ifstream in(argv[1] ) ;  // Open the input file.
      if ( in.fail() )
      {
        cerr << "Open failure on file.txt" << endl ;
        return 1 ;
      }

      ofstream out( "tmp.txt" ,ios::trunc) ;  // Open the output file.
      if ( out.fail() )
      {
        cerr << "Open failure on file.bak" << endl ;
        return 1 ;
      }

        in.getline(buffer,520,'\n');

    memset(buffer,0,520);
     count = 1 ;
      while(!in.eof()) // Loop while not end of file.
      {
        in.getline(buffer,520,'\n');
    if(strcmp(buffer," \n")==0)
        {continue;}
    out<<buffer<<endl;
        memset(buffer,0,520);
     
        count++ ;
      }

     

      in.close() ;
      out.close() ;
    sprintf(buffer,"copy tmp.txt %s/y",argv[1]);
    system(buffer);
    memset(buffer,0,520);
      cout << "Copy completed. "
           << count  << " pcs copied." << endl ;
      return 0 ;
    }

    2013年3月20日 9:47

答案

  • out<<buffer<<endl;
    --------------------------------
    这里您每次写文件,就写入一个回车换行符,所以文件内容的最后就多了一个空行。

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    • 已标记为答案 Honny_yeyh 2013年3月21日 1:37
    2013年3月20日 12:48
    版主

全部回复

  • out<<buffer<<endl;
    --------------------------------
    这里您每次写文件,就写入一个回车换行符,所以文件内容的最后就多了一个空行。

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    • 已标记为答案 Honny_yeyh 2013年3月21日 1:37
    2013年3月20日 12:48
    版主
  • 有没有办法把文件末尾的空行删除?
    2013年3月21日 1:42