c++文件io操作练习之写日志文件和读取参数配置文件

本文介绍了一个C++初学者如何在Linux环境下进行文件IO操作,包括使用简单的方法来实现日志文件的写入及从配置文件中读取参数的过程。文中提供了一个具体的例子,演示了如何获取当前时间并格式化,以及如何通过键值对的方式读取配置文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

初学c++,菜鸟一个,项目需要在Linux下学习文件io操作流,主要是写日志文件和读取参数配置文件,查找了别人的一些方法,选用简单易懂的,记录下来。

//获取系统时间 标准格式
string GetSystemTime()
{
    time_t tNowTime;
    time(&tNowTime);
    tm *tLocalTime = localtime(&tNowTime);
    char szTime[30] = {'\0'};
    strftime(szTime,30,"[%Y-%m-%d %H:%M:%S] ",tLocalTime);
    string strTime = szTime;
    return strTime;
}

//键值对方式读取参数配置文件
bool readConfigFile(const char* cfgfilepath,const string & key, string & value1)  
{  
    fstream cfgFile;  
    cfgFile.open(cfgfilepath);//打开文件      
    if(!cfgFile.is_open())  
    {  
       cout<<"can not open cfg file!"<<endl;  
        return false;  
    }  
    char tmp[100];  
    while(!cfgFile.eof())//循环读取每一行  
    {  
        cfgFile.getline(tmp,100);//每行读取前100个字符,100个应该足够了  
        string line(tmp);  
        size_t pos = line.find('=');//找到每行的“=”号位置,之前是key之后是value  
        if(pos==string::npos) 
            return false;  
        string tmpKey = line.substr(0,pos);//取=号之前  
        if(key==tmpKey)  
        {  
            value1 = line.substr(pos+1);//取=号之后  
            return true;  
        }  
    } 
    cfgFile.close();  
    return false;  
}  

int main(int argc, char **argv)
{   
    ofstream fout("log.txt",ios::app);//追加文本方式,不使用ios::app为覆盖
    fout <<GetSystemTime()<<"start..."<< endl;
    fout.close();

    const char* cfgfilepath="config.cfg";
    const string key_X="X";
    string value_X="";
    float X=0;
    readConfigFile(cfgfilepath,key_X,value_X);
    X=atof(value_X.c_str());//string转float
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值