c++ 读取ini配置文件,文件内容包含中文

C++Qt自己实现读取ini文件 自己用Qt里的QFile类,实现的读取配置文件但是不会像使用QSetting一样格式化注释什么的,只是简单的文件和字符串操作。先看下我的配置文件和需求。需求:读取Config.ini的MaxNum,StatusBeforeCrop,BeforeCropPath的值到设置框里,并且修改后保存会配置文件中。配置文件:上代码没有声明的变量都是成员变量。读取的时候最好也utf-8编码否则写回去的时候会乱码... 阅读详情

读取含中文内容ini文件代码

#include <iostream>
#include <fstream>
#include <stdio.h>
#include <cstring>


string outline_image_path;

LPCTSTR ini_path = "D:/cudaHygiene/image/带蓝芯弧形/带蓝芯弧形.ini";


//读取整型ini数据
int getInt(LPCTSTR lpKeyName, INT nDefault)
{
	int value = GetPrivateProfileInt("Detection", lpKeyName, nDefault, ini_path);
	return value;
}

//读取浮点型ini数据
double getDouble(LPCTSTR lpKeyName, LPCTSTR nDefault)
{
	//读取字符型ini数据
	char value[20];
	GetPrivateProfileString("Detection", lpKeyName, nDefault, value, sizeof(value), ini_path);
	//转为double型
	return strtod(value, NULL);
}


void read_ini()
{
	int model_flag = getInt("model_flag", 0);
	int filter_flag = getInt("model_flag", 0);
	int defect_distance = getInt("defect_distance", 1);
	int defect_height = getInt("defect_height", 1);
	int defect_width = getInt("defect_width", 1);
	double Zoom_factor_x = getDouble("Zoom_factor_x", "1");;
	double Zoom_factor_y = getDouble("Zoom_factor_y", "1");;

	char file_path[200];
	GetPrivateProfileStringA("Detection", "configuration_file_path ", "", file_path, sizeof(file_path), ini_path);;

    //修改字符数组
	strcpy_s(configuration_file_path, file_path);
	GetPrivateProfileString("Detection", "outline_image_path", "", file_path, sizeof(file_path), ini_path);
    //修改字符串
	outline_image_path = file_path;

}

含中文内容的ini文件编码格式改为UTF-16LE(可打开文件,另存为,选择下方的编码格式),就可以读取中文内容了

C# 通过第三方库INIFileParser管理INI配置文件 很多时候我们是直接调用系统的C++库中的GetPrivateProfileString和WritePrivateProfileString接口来实现管理INI文件的,这个接口最久可以追溯到上个世纪80年代,在VB和C++中都可以调用,我认识这个接口有20年了。在使用C#后,WIN10或WIN11环境下发现了越来越多的问题,主要发现路径上有特殊字符号,如#、+、空格、中文等组合情况下会出现找不到路径的或者出现乱码问题。于是尝试用第三方库来实现。 阅读详情

相关推荐

C++使用duiLib库操作ini文件示例项目

ini文件(初始化文件),是一种简单的文本配置文件格式,广泛应用于软件配置中,它以键值对的形式存储信息,结构清晰,易于编辑。这种格式的文件通常用于存储用户偏好设置、应用程序参数等,是实现软件配置灵活化的一种有效方式。duiLib是一个轻量级的C++图形用户界面库,最初由C++大师侯捷先生开发。这个库是开源的,它通过封装Windows API来提供了一套简化版的GUI组件,对于需要快速开发Windows平台应用程序的开发者来说,duiLib提供了一个高效率的选择。

weixin_42601547的博客 1032

中文编码之间的区别及C++如何读取输出中文文件

c++编码之间的区别及如何读取输出中文

WuWangYongShi的博客 448

C++读写ini配置文件

在原作者的基础上进行修改的,需要C请去https://download.csdn.net/download/taoyuanmin/9179573下载,或者再次修改即可

configparser读取含有中文的配置(Windows)

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34349320的博客 804

Spring从配置文件读取中文,显示乱码

在项目时,遇到从配置文档中读取中文参数时,呈现乱码,细细分析,当读取资源时,按照默认字节读取,而中文属于变字节,所以会呈现乱码。因此,要在spring配置文档里加上, classpath*:config/redis.properties classpath*:config/jdbc.properties

mrxavier的博客 1172

Unity读取config.ini配置文件

config.ini存放在Assets目录下,项目打包之后存放在Data目录下exe同目录 // 从配置文件读取 string configFile = Application.dataPath + "/config.ini";//打包好的“xxx_Data”目录貌似没有读取里面的文件权限 //所以对于打包的程序,需要把配置文件config.ini放在exe同目录下 #if !UNITY_EDITOR configFile = System.Environm.

weixin_42565127的博客 2748

ini配置文件&解析(C++)

ini解析学习文档 一.什么是Iniini文件Initialization File的缩写,即初始化文件,通常存放的是一个程序的初始化信息,是Windows的系统配置文件所采用的存储格式,统管windows的各项配置。ini文件的后缀名不一定是.ini,也可以是**.cfg、.conf或者是.txt**。 二.ini文件格式&语法规范 ​ **ini文件由若干个节(section)组成,每个section由若干键(Key)组成,每个Key可以赋相应的值。读写ini文件实际上就是读写某个的s

S—WORKS宇 1万+

QSettings读取ini文件中文key方法

(吐槽:什么鬼,为啥要用中文当key???我也不知道呀) QSettings读取ini文件,其中key是中文的。例如: [单位] 1=运维检修部1(检修公司) 2=运维检修部2(检修公司) [班组] 1=检修1班 2=检修1班 需要ini格式是utf-8的。不能是其他格式,也不能是UTF-8 BOM(会少第一个key) 代码如下 QMap<QString,QString&g...

缘如风的博客 7256

C++ 读取INI文件

我们通常需要用到配置文件,Windows支持读取INI文件。 总结为一个类: class CMyINI { public: CMyINI(CString strIniName); ~CMyINI(void); void GetFromIniFileValueINT(LPCTSTR lpAppName, LPCTSTR lpKeyName, INT *pIntValue);

豆浆爱蟹蟹 1405

C/C++ 操作ini文件(SinpleIni 跨平台库)

超详细介绍simpleini库的使用;C/C++操作ini文件;跨平台。

cpp_learner的博客 1万+

Qt通过QSttings类读取*.ini配置文件

INI(InitializationFile)是微软Windows操作系统中的文件扩展名。这些字母表示初始化。正如该术语所表示的,INI文件被用来对操作系统或特定程序初始化或进行参数设置。在项目也会将一些配置信息存于ini文件,所以读取配置文件是项目中不可缺少的一部分。由于ini只有节和参数比较简单,在Qt中又有QSettings类使得更加便捷。...

林夕07 908

Windows系统区域设置对非Unicode程序读取ini文件中文内容的影响与解决方案

本文深入探讨了Windows系统区域设置对非Unicode程序读取ini文件中文内容的影响。当系统区域设置与文件编码不匹配时,程序会因使用错误的代码页解码而导致中文乱码。文章分析了问题根源,并提供了修改系统区域设置、升级程序使用Unicode API、配置文件中文化及运行时动态指定编码等多套解决方案,帮助开发者和用户彻底解决这一经典编码问题。

vodka的博客 663

C++:读ini文件(附带源码)

C++:读ini文件(附带源码)

欢迎来到我的博客!这里是一个专注于计算机技术的分享平台,涵盖编程开发、算法研究、系统架构、软件工程等多个领域。无论你是初学者还是资深开发者,都能在这里找到有价值的内容。 1142

Qt:xml与ini配置文件的写入和读取

基于QT的项目实现了对XML和INI配置文件的写入和读取功能。通过使用QT的相关类和函数,如`QFile`、`QDomDocument`和`QSettings`等,可以方便地将用户界面中的配置信息写入到XML和INI文件中,或从文件读取配置信息。项目还包含了错误处理机制,确保文件操作的完整性。该项目提供了一种简单而实用的方式来管理和存储应用程序的配置信息。

HandsomeJacky的博客 1706

(封装) Qt (QSettings) 读写(ini/conf)配置文件用法详解(内含中文乱码问题分析注释与解决)

1. ini配置文件的组成 [section] // 节名 key = value //键 = 值 2. 关于QSettings QSettings的API是基于Qvariant,它包含了大部分通常的Qt数据类型,比如QString,QRec,QImage,等等。 当创建一个Qsettings的对象时,需要传递给它两个参数,第一个是组织的名称,第二个是应用...

qq_36651243的博客 1万+

C++ INI配置文件——用pugixml 对XML解析(这一篇就够了)

目录 一、XML文件格式(INI文件) 二、pugixml解析INI配置文件实例 一、XML文件格式(INI文件) <?xml version="1.0"?> <Tools> <toolsPaths> <SavePathDoc value="C:/tools/" /> <SavePathImg value="C:/tools...

GZ的博客 1386

VC++ ini配置文件封装类源代码(附带源码)

VC++ ini配置文件封装类源代码(附带源码)

欢迎来到我的博客!这里是一个专注于计算机技术的分享平台,涵盖编程开发、算法研究、系统架构、软件工程等多个领域。无论你是初学者还是资深开发者,都能在这里找到有价值的内容。 862

C++操作配置文件.ini (***)

此次操作*.ini文件用到的工具:simpleini,下载地址:https://github.com/brofield/simpleini。原文链接:https://blog.csdn.net/cpp_learner/article/details/128780799。2. iniparser:这是C语言的库,挺方便使用的,开源,两个.h文件和两个.c文件,但只能在Linux中使用;3. simpleini:这是C++的库,挺方便使用的,跨平台,开源,就两个.h文件和一个.c文件,且支持中文

ken2232的博客 377
上一篇: C++ 或 QT 判断当前模式是Debug还是Release模式
下一篇: QT 读ini配置文件
Como0413
博客等级 码龄9年 2863粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值