| 
 | 
 
 
发表于 2018-10-20 21:02:35
|
显示全部楼层
 
 
 
 
#include <iostream> 
#include <fstream> 
#include <string> 
#include <windows.h>         // 为了使用Sleep()函数  
 
struct FishOil 
{ 
        std::string name; 
        std::string uid; 
        char sex; 
};  
 
bool InitFishC(); 
bool ReadFishC();  
void RecordFishC(); 
bool WriteFishC(FishOil *OilData); 
 
int main() 
{ 
        int i; 
         
        InitFishC();  // 初始化数据。  
        while( 1 ) 
        {  
                std::cout << "请选择需要进行的操作: \n"; 
                std::cout << "1. 打印数据到屏幕\n"; 
                std::cout << "2. 录入数据\n";  
                std::cout << "3. 退出程序\n";  
                std::cin >> i; 
                 
                switch( i ) 
                { 
                        case 1:  
                                if( ReadFishC() ) 
                                        std::cout << "成功读取文件^_^\n\n"; 
                                else 
                                        std::cout << "读取文件失败T_T\n\n"; 
                                break; 
                        case 2: 
                                RecordFishC(); 
                                break; 
                        case 3: 
                                return 0;         
                } 
        } 
         
        std::cout << "初始化失败T_T......\n\n"; 
                  
        return 0; 
         
} 
 
bool InitFishC() 
{ 
        FishOil OilInit = {"小甲鱼", "fishc00001", 'M'}; 
 
        if( WriteFishC(&OilInit) == false ) 
                std::cout << "初始化失败T_T\n";   
 
        return 1; 
} 
 
bool ReadFishC() 
{ 
        std::string temp; 
        std::ifstream fileInput("FishC.txt"); 
         
        if( fileInput.is_open() ) 
        { 
                std::cout << "\n正在输出记录数据...... "; 
                for( int i=0; i <= 100; i++ )      // 打印百分比  
                { 
                        std::cout.width(3); 
                        std::cout << i << "%"; 
                        Sleep(50); 
                        std::cout << "\b\b\b\b"; 
                } 
                std::cout << "\n\n"; 
                 
 
                std::cout << " 姓名 " << "  身份证  " << " 性别 " << "\n\n"; 
                  
                while( std::getline( fileInput, temp ) ) 
                { 
                        std::cout << temp << "   "; 
                        std::cout << "\n"; 
                } 
                std::cout << "\n\n"; 
                 
                return true; 
        }  
        else 
                return false; 
} 
 
void RecordFishC() 
{ 
        char goon, Save; 
        FishOil OilData; 
        FishOil *pOilData; 
         
        goon = 'Y'; 
        while( 'Y' == goon ) 
        { 
                std::cout << "请输入鱼C账号: "; 
                std::cin >> OilData.name; 
                std::cout << "请输入鱼C身份证:"; 
                std::cin >> OilData.uid; 
                std::cout << "请输入性别:"; 
                std::cin >> OilData.sex; 
                 
                std::cout << "录入成功, 请问需要保存吗?(Y/N)"; 
                std::cin >> Save;          
                if( 'Y' == Save ) 
                { 
                        pOilData = &OilData; 
                        if( WriteFishC( pOilData ) ) 
                                std::cout << "成功写入文件^_^\n"; 
                        else 
                                std::cout << "写入文件失败T_T\n";         
                } 
                else 
                { 
                        return; 
                } 
                 
                std::cout << "/n请问需要再次录入吗?(Y/N)"; 
                std::cin >> goon;  
        } 
} 
bool WriteFishC( FishOil *pOilData ) 
{ 
        std::ofstream fileOutput("FishC.txt", std::ios::app);   
                // std::ios::app用来说明在老数据追加新数据  
        if( fileOutput.is_open() ) 
        { 
                fileOutput << pOilData->name << " "; 
                fileOutput << pOilData->uid << " "; 
                fileOutput << pOilData->sex << "\n"; 
                 
                fileOutput.close(); 
                std::cout << "数据成功保存到FishC.txt\n\n"; 
        }  
        else 
                std::cout << "保存失败T_T\n";          
         
        return 1; 
} 
又发现两个问题,甲鱼这个程序有两个地方忘加返回值了高版本编译器不会通过,你试试我新加了返回值这个函数应该就可以编译了 
 |   
 
 
 
 |