Visual Studio C++ 的一个简单示例

Visual Studio 项目属性设置:

项目属性→C/C++→常规→附加包含目录

C:\Intel\include\iconv\include;

项目属性→链接器→常规→附加库目录

C:\Intel\include\iconv\lib;

项目属性→链接器→输入→附加依赖项

iconv.lib;

提示缺少"iconv.dll",需要将iconv.dll拷贝至main.cpp同阶目录。

#include <iostream>
#include <fstream>
#include <string>
#include "C:\Intel\include\iconv\include\iconv.h"//#pragma comment (lib, "iconv.lib")using namespace std;string gb2312_to_utf8(const string& input);
bool FileConvertGb2312ToUtf8(string pathFile);
void SaveToLog(string path, string content);int main(int argc, char* argv[])
{int n = 0;string path = string(argv[0]);string pathLog = path.substr(0, path.find_last_of('\\') + 1) + "log.txt";string log = string("123成功了Hello,world!");SaveToLog(pathLog, log);FileConvertGb2312ToUtf8(pathLog);cin >> n;return n;
}bool FileConvertGb2312ToUtf8(string pathFile)
{int pos = pathFile.find_last_of("\\");string nameFile = pathFile.substr(pos + 1, pathFile.length() - pos - 5);ifstream infile(pathFile, ios::binary);if (!infile) {cerr << "Failed to open input file" << endl;return 1;}string content((istreambuf_iterator<char>(infile)), istreambuf_iterator<char>());infile.close();string utf8_content = gb2312_to_utf8(content);if (utf8_content.empty()) {cerr << "Failed to convert encoding" << endl;return 1;}//pathLog = pathLog.replace(pathLog.find_last_of("log") + 1, 0, "_utf8");string pathFileNew = pathFile.replace(pathFile.find_last_of(nameFile) + 1, 0, "_utf8");ofstream outfile(pathFileNew, ios::binary);if (!outfile) {cerr << "Failed to open output file" << endl;return 1;}outfile.write(utf8_content.data(), utf8_content.size());outfile.close();puts("文件转换成功!");puts(pathFileNew.c_str());return true;
}string gb2312_to_utf8(const string& input)
{iconv_t cd = iconv_open("UTF-8", "GB2312");if (cd == (iconv_t)-1) {cerr << "iconv_open failed" << endl;return "";}size_t inbytesleft = input.size();size_t outbytesleft = inbytesleft * 2;char* inbuf = const_cast<char*>(input.c_str());char* outbuf = new char[outbytesleft];char* outptr = outbuf;if (iconv(cd, (const char**)&inbuf, &inbytesleft, &outptr, &outbytesleft) == (size_t)-1) {cerr << "iconv failed" << endl;iconv_close(cd);delete[] outbuf;return "";}string output(outbuf, outptr - outbuf);delete[] outbuf;iconv_close(cd);return output;
}void SaveToLog(string path, string content)
{ofstream outfile(path);if (outfile.is_open()){outfile << content;outfile.close();puts("文件保存成功");puts(path.c_str());}else{puts("文件保存失败");puts(path.c_str());}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/6261.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

架构设计 | 分布式与集群有什么区别

作为一名从业多年的程序员&#xff0c;对于分布式和集群这两种架构有着深入的了解。简单来说&#xff0c;分布式是将一个任务分拆到多个节点共同完成&#xff0c;而集群则是多个节点执行相同的任务。具体来说&#xff0c;分布式和集群的区别体现在以下几个方面&#xff1a; 一…

2024年钉钉群直播回放如何永久保存

工具我已经打包好了&#xff0c;有需要的自己取一下 链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;1234 --来自百度网盘超级会员V10的分享 1.首先解压好我给大家准备好的压缩包 2.再把逍遥一仙下载器压缩包也解压一下 3.打开逍遥一仙下载器文件夹里面的M3U8…

开源的贴吧数据查询工具

贴吧数据查询工具 这是一个贴吧数据查询工具&#xff0c;目前仍处于开发阶段。 本地运行 要本地部署这个项目&#xff0c;请 克隆这个仓库并前往项目目录 git clone https://github.com/Dilettante258/tieba-tools.git cd tieba-tools安装依赖 pnpm install运行项目 np…

输入序列太长 gan CGAN

transformer序列长度大导致计算复杂度高 GAN 2. 训练过程 第一阶段&#xff1a;固定「判别器D」&#xff0c;训练「生成器G」。使用一个性能不错的判别器&#xff0c;G不断生成“假数据”&#xff0c;然后给这个D去判断。开始时候&#xff0c;G还很弱&#xff0c;所以很容易被…

Java并发编程面试问题与答案

1. 什么是线程安全&#xff1f; 答&#xff1a; 线程安全意味着多个线程可以同时访问一个类的实例而不引起任何问题或不一致的结果。线程安全的代码会通过同步机制来确保所有线程都能正确地访问共享资源。 2. 解释Java中的synchronized关键字。 答&#xff1a; synchronized…

three.js入门指南

WebGL和Three.js的概念 什么是WebGL WebGL是基于OpenGL ES 2.0的Web标准&#xff0c;可以通过HTML5 Canvas元素作为DOM接口访问。 也就是WebGL是作为OpenGL的网页端入口。它作为一个底层标准&#xff0c;然后我们可以通过JavaScript代码&#xff0c;在网页上实现三维图形的渲…

./build.sh:行1: g++: 未找到命令的错误问题在centos操作系统下面如何解决

目录 g: 未找到命令报错解释g: 未找到命令解决方法 centos操作系统&#xff0c;执行一个bash&#xff0c;bash命令很简单&#xff0c;就是用g编译一个C的程序。报告错误&#xff1a; ./build.sh:行1: g: 未找到命令 g: 未找到命令报错解释 这个错误表明在执行名为 build.sh 的…

【Mac】mac 安装 prometheus 报错 prometheus: prometheus: cannot execute binary file

1、官网下载 Download | Prometheus 这里下载的是prometheus-2.51.2.linux-amd64.tar.gz 2、现象 解压之后启动Prometheus 启动脚本&#xff1a; nohup ./prometheus --config.fileprometheus.yml > prometheus.out 2>&1 & prometheus.out日志文件&#xff…

容器虚拟机 资源 容器自动化构建 动手写docker OCI开放容器标准 云原生技术 k8s

容器虚拟机 容器和虚拟机都是用于资源隔离和管理的技术,它们在资源管理和使用上有所不同。 虚拟机是一种基于软件的模拟技术,可以使得一台物理计算机同时运行多个操作系统和应用程序。虚拟机技术具有资源隔离、灵活性和迁移能力等特点。通过虚拟机,可以实现物理资源的动态…

基于Springboot的校运会管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的校运会管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&a…

谈谈TCP Socket中读取数据的函数---read、recv、readv

read函数 read函数从文件描述符&#xff08;包括TCP Socket&#xff09;中读取数据&#xff0c;并将读取的数据存储到指定的缓冲区中。原型 ssize_t read(int fd, void *buf, size_t count); -fd&#xff1a;要读取数据的文件描述符&#xff0c;可以是TCP Socket -buf&#xf…

Xamarin.Android项目使用ConstraintLayout约束布局

Xamarin.AndroidX.ConstraintLayout Xamarin.Android.Support.Constraint.Layout Xamarin.AndroidX.ConstraintLayout.Solver Xamarin.AndroidX.DataBinding.ViewBinding Xamarin.AndroidX.Legacy.Support.Core.UI Xamarin.AndroidX.Lifecycle.LiveData ![在这里插入图片描述]…

11个2024年热门的AI编码助手

大家好&#xff0c;人工智能&#xff08;AI&#xff09;领域的大型语言模型&#xff08;LLMs&#xff09;已经逐渐发展成熟&#xff0c;并且深入到了我们日常的工作当中。在众多AI应用中&#xff0c;编码助手尤为突出&#xff0c;是开发人员编写更高效、准确无误代码的必备辅助…

公司网页设计与制作

创意与专业相结合——公司网页设计与制作 在当今数字化时代&#xff0c;公司网页已经成为企业展示形象和吸引客户的关键渠道之一。因此&#xff0c;一个引人注目且功能强大的网页设计和制作变得至关重要。成功的公司网页设计与制作需要兼具创意与专业&#xff0c;以确保吸引用户…

微服务总览

微服务保护 微服务总览 微服务总览 接入层&#xff1a;反向代理功能&#xff0c;可以将用户域名访问的地址以负载均衡的方式代理到网关地址&#xff0c;并且并发能力非常高&#xff0c;并且会采用主备nginx的方式防止nginx寄了&#xff0c;备份nginx监控主nginx状态&#xff0c…

【非常实战具体】k8s中deployment和StatefulSet构建的pod的区别

在Kubernetes中&#xff0c;Deployment和StatefulSet都是控制器对象&#xff0c;用于管理和扩展应用程序的Pod。它们之间的主要区别在于它们处理Pod的方式和适用的应用程序类型。 以下是Deployment和StatefulSet之间的主要区别&#xff1a; 有状态应用程序 vs 无状态应用程序…

Linux USB转串口设备路径的查找方法

1、USB转串口设备 USB转串口设备是在嵌入式软件开发过程中经常要使用的&#xff0c;常常用于对接各种各样的串口设备。如果一台linux主机上使用多个usb转串口设备时&#xff0c;应用程序中就需要知道自己操作的是哪个串口设备。串口设备在系统上电时&#xff0c;由于驱动加载的…

Python内置函数locals()详解

Python中的locals()函数用于获取当前局部符号表的字典。这个字典包含了当前作用域中的局部变量。 函数定义 locals()函数不需要任何参数&#xff0c;并且返回当前局部变量作用域的内容。 locals()基本用法 在函数中使用 def my_function():a 10b 20local_variables loc…

行业早报05.04

1.沃尔沃汽车 Q1 全球销量超 18.2 万辆&#xff1a;同比增长 12%&#xff0c;中国市场达 1.4 万辆&#xff1b; 2.LG 电子 Q1 营收 21.10 万亿韩元同比增长 3.3%&#xff0c;利润 1.33 万亿韩元同比减少 11%&#xff1b; 3.乘联会&#xff1a;3 月新能源车批发销量 81.0 万辆同…

【华为 ICT HCIA eNSP 习题汇总】——题目集20

1、&#xff08;多选&#xff09;若两个虚拟机能够互相ping通&#xff0c;则通讯过程中会使用&#xff08;&#xff09;。 A、虚拟网卡 B、物理网卡 C、物理交换机 D、分布式虚拟交换机 考点&#xff1a;数据通信 解析&#xff1a;&#xff08;AD&#xff09; 物理网卡是硬件设…