C/C++: Feof的使用, C与C++的不同结果

C/C++: Feof的使用, C与C++的不同结果
#include  < iostream >
#include 
< stack >
#include 
< fstream >
#include 
< cstdio >

int  main() {
    
//  片断1
    
//     std::ifstream file;
    
//     file.open("main.cpp");
    
//     
    
//     if (!file) {
    
//         std::cout << "Error" << std::endl;
    
//         return 1;
    
//     }
    
//     
    
//     char line[100];
    
//     while (!file.eof()) {
    
//         file.getline(line, 100);
    
//         std::cout << line << std::endl;
    
//     }

    
//  片断2
    FILE  * fp  =  fopen( " main.cpp " " r " );
    
if  ( ! fp) {
        std::cout 
<<   " Errof "   <<  std::endl;
        
return   1 ;
    }
    
    
char  line[ 100 ];
    
while  ( ! feof(fp)) {
        fgets(line, 
100 , fp);
        std::cout 
<<  line;
    }
    fclose(fp);
    
    
return   0 ;
}


输出结果并不一样, C的会多输出一个}, 而C++的输出正常.

你可能感兴趣的:(C/C++: Feof的使用, C与C++的不同结果)