读取文本格式配置文件内容

/*
 *parameter: cfgfilepath 文件的绝对路径名如: /user/home/my.cfg
 *           key         文本中的变量名
 *           value       对应变量的值,用于保存
 *
 */

#include <iostream>
#include <string>
#include <fstream>
using namespace std;

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


int main() {
	string value;
	readConfigFile("F:/test1.txt", "name", value);
	cout << value << endl;

	system("pause");
	return 0;
}

文件中存在中文时输出结果是乱码:
编码格式默认是UTF-8格式,不支持汉字编码。因此在保存txt文本文件时,改变编码格式,将默认的UTF-8改成ANSI即可。
文本内容
在这里插入图片描述
输出结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值