C++中读取文件ifstream、ofstream

article/2025/10/7 14:57:02

现在,我想对一个utf-8的json文件进行读写操作。在此过程中,遇到了一些问题。

头文件的添加:

#include <iostream>
#include <cstring>
#include <fstream>
#include <sstream>

(一)ifstream读取文件

A:使用char*的方式读取

ifstream  readFile;readFile.open(L"需要读取的文件名.json");  //打开需要操作的文件if (readFile.fail())
{return FALSE;   //说明文件读取失败!
}readFile.seekg(0 , std::ios::end);  //将指针指向文件的结尾int nLen = readFile.tellg();   //获取文件的长度readFile.seekg(0 , std::ios::beg);  //再将指针指向文件的开始,主要是为了读取数据char* buffer = new char[nLen];readFile.read(buffer , nLen);  //读取文件中的内容readFile.close();  //在不对文件进行操作时,一定要关闭文件

B:使用string流的方式读取 

ifstream  readFile;readFile.open(L"测试文本.json");  //打开需要操作的文件if (readFile.fail())
{return ;   //说明文件读取失败!
}std::string   sBuffer;readFile>>sBuffer;int nLen = sBuffer.length();

使用这种方式的时候,有一些问题。我们可以看一下我调试的结果

当读取json文件时,遇到换行变会截断了。如果你要是觉得只有json文件才有这个错误,那就打错特错了!大家可以尝试下哈

C:现在,我们还是用流的方式读

使用这种方式时,不会再出现以上的数据丢失问题

ifstream  readFile;readFile.open(L"测试文本.json");  //打开需要操作的文件if (readFile.fail())
{return ;   //说明文件读取失败!
}
std::stringstream  streambuffer;streambuffer<<readFile.rdbuf();string sdata(streambuffer.str());int nLen = sdata.length();

此时,调试出来的内容可以看到全部的数据了,大家可以使用一个文件测试下。

上面,我展示了两类读取文件的方式,一个是char*数组读取,一个是string流数据读取。其实,在这里,如果步步调试代码的同学就会发现一个问题,当用char*读取文件的长度比用string流方式读取的文件长度长!(如有问题可以验证)在此,我再郑重声明下,我做测试的文件是utf-8格式的json串。

(二)ofstream写入文件

ofstream  writeFile;writeFile.open(L"需要写入的文件名.json");if (!writeFile)
{return FALSE;  //打开文件失败
}writeFile<<schangeData;writeFile.close();

像我这么懒的人直接上代码就行了,再多的语言也不如代码看的清楚明白。

今天的内容就到这了,博友们如果有问题可以咱们可以一起学习交流


http://chatgpt.dhexx.cn/article/nE9wdcHM.shtml

相关文章

C++ 文件读写操作std::ofstream和std::ifstream

文章目录 前言一、文件操作的介绍二、使用步骤1.读文件操作&#xff08;std::ifstream&#xff09;2.写文件操作&#xff08;std::ofstream&#xff09; 前言 例如&#xff1a;随着人工智能的不断发展&#xff0c;机器学习这门技术也越来越重要&#xff0c;很多人都开启了学习…

C++ 中 ifstream读取txt文件内容

文章目录 头文件把txt文件放在当前目录下1、逐行读入文件2、逐个字符读入&#xff08;忽略空格与回车&#xff09;3、逐个字符读入&#xff08;包括空格与回车&#xff09;示例代码 头文件 #include <iostream> #include <fstream> #include <cassert> #inc…

【C++11】文件操作ifstreamofstream

文章目录 文件输入流创建ifstream对象读取文件数据 文件输出流文件流的打开模式创建ofstream对象写入文件数据 文件输入输出示例 文件输入流 创建ifstream对象 使用ifstream类创建ifstream对象&#xff0c;所获取的对象能够像cin一样使用>>运算符从所绑定文件中读取数据…

C++ ifstream eof()的使用

C ifstream eof() 的使用 eof() 的使用方法1 ifstream.eof() 读到文件结束符时返回true。 大家可能有一个误区&#xff0c;认为读到文件结束符就是读到文件的最后一个字符。 其实不然&#xff0c;文件结束符是文件最后一个字符的下一个字符0xFF&#xff0c;eof() 读到文件结束…

C++文件读写详解(ofstream,ifstream,fstream)

在看C编程思想中&#xff0c;每个练习基本都是使用ofstream,ifstream,fstream&#xff0c;以前粗略知道其用法和含义&#xff0c;在看了几位大牛的博文后&#xff0c;进行整理和总结&#xff1a; 这里主要是讨论fstream的内容&#xff1a; #include <fstream>ofstream …

c++输入文件流ifstream用法详解

目录 文章目录 输入流的继承关系&#xff1a;成员函数Public member functions 1&#xff0c; (constructor) 2&#xff0c;ifstream::open 3&#xff0c;ifstream:: is_open 4&#xff0c;ifstream:: close 5&#xff0c;ifstream:: rdbuf 6&#xff0c;ifstream:: operator …

ifstream的使用

fstream提供了三个类&#xff0c;用来实现c对文件的操作。&#xff08;文件的创建、读、写&#xff09;。 ifstream – 从已有的文件读入 ofstream – 向文件写内容 fstream - 打开文件供读写 文件打开模式&#xff1a; ios::in 只读 ios::out 只写 ios::app 从文件末尾开始写&…

c++ 输入文件流ifstream用法详解

文章目录 c 输入文件流ifstream用法详解输入流的继承关系&#xff1a;C 使用标准库类来处理面向流的输入和输出&#xff1a;成员函数Public member functions1. **(constructor)**2. **ifstream::open**3. **ifstream:: is_open**4. **ifstream:: close**5. **ifstream:: rdbuf…

计算机工业控制高职教材,计算机控制技术(21世纪高职高专系列规划教材)

导语 本书以工业控制计算机(IPC)为主线&#xff0c;理论联系实际&#xff0c;突出工程应用&#xff0c;阐述了计算机控制技术及其工程实现方法。全书分为8章&#xff0c;内容包括&#xff1a;计算机控制系统概述&#xff0c;计算机控制过程通道&#xff0c;数字控制技术&#x…

高职高专信息工程学院专业设置

学院全面落实立德树人根本任务,注重实习实训,着力培养德才兼备的技能型信息技术人才。与华为、腾讯、百度、阿里巴巴、新浪、搜狐、网易等多家知名IT企业合作,建成多所紧贴行业前沿的实习实训基地,保证人才培养与企业需求无缝对接。学院现有计算机应用技术、云计算技术应用…

湖北省高职计算机本科学校有哪些,盘点最新湖北十大高职高专院校排名,湖北最好的高职院校有哪些?...

高职高专就是高等职业学院和高等专科学校的简称&#xff0c;是专科(大专)层次的普通高等学校。简单点来说&#xff0c;高职高专院校就是职业技术教育&#xff0c;是职业技术教育的高等阶段。今天小编就来给大家盘点下最新湖北十大高职高专院校排名&#xff0c;湖北最好的高职院…

江西省计算机学会高职高专,我校应邀出席江西省计算机学会高职高专工作委员会成立大会...

8月21日下午&#xff0c;江西省计算机学会高职高专工作委员会成立大会在南昌召开&#xff0c;中国计算机学会职业教育发展委员会、江西省计算机学会、广东省计算机学会高职高专分会、省内相关高职院校领导和企业代表等90余人参加成立大会。我校作为主任委员单位&#xff0c;副校…

武汉高职高专计算机专业分数线,武汉高职高专学校有哪些及分数线

武汉市高职高专众多&#xff0c;其中也包含不少野鸡大学&#xff0c;哪些高职高专是值得2020年高考生选择的正规高校&#xff0c;7月9日教育部官网已公布全国高校名单&#xff0c;其中武汉市有37所公办或民办的高职学校&#xff0c;已整理各高职院校2019年名单及最低录取分数线…

高职高专计算机毕业论文平面设计,高职高专平面设计论文

高职高专平面设计论文 1高职高专平面设计教学的问题 (1)学生学习态度不够端正 随着高校的不断扩招&#xff0c;大学本科的门槛变低&#xff0c;学习不好的学生也可以考上高职高专的&#xff0c;所以很多学生高中学习成绩就不好&#xff0c;基础不扎实&#xff0c;他们一直是态度…

计算机网络 高职,高职高专计算机网络

高职高专计算机网络 1、高职高专院校精品课程现状 从教学方法到教学手段、从教学思想到教学内容、从教材到管理、从教师到学生&#xff0c;计算机网络精品课程建设涉及广泛。然而&#xff0c;要想提升教学质量&#xff0c;就必须紧抓每一个环节。 1.1教学实践比重失衡 在现阶段…

湖北省高职高专计算机专业排名,湖北高职高专学校排名

今天就是高职高专院校填报志愿的日子了&#xff0c;湖北省的高职高专院校有哪些&#xff0c;排名比较靠前的是哪些&#xff0c;大家在填报志愿的时候总是非常迷茫不知道该填报什么专业&#xff0c;下面还给大家推荐了一些该院校的王牌专业&#xff0c;希望能对大家有所帮助。 周…

模式识别、机器学习、深度学习的区别

1、模式识别概念 模式识别是指对表征事物或现象的各种形式的(数值的、文字的和逻辑关系的)信息进行处理和分析&#xff0c;以对事物或现象进行描述、辨认、分类和解释的过程&#xff0c;是信息科学和人工智能的重要组成部分。 2、机器学习 计算机程序可以在给定某种类别的任…

什么是模式识别,对抗学习是什么?

模式识别是什么&#xff1f; 作为人工智能的一个重要方向&#xff0c;模式识别的主要任务是模拟人的感知能力&#xff0c;如通过视觉和听觉信息去识别理解环境&#xff0c;又被称为“机器感知”或“智能感知”。 人们在观察事物或现象的时候&#xff0c;常常要寻找它与其他事…

《模式识别与机器学习》 简称 PRML 开源了

前言 本文的原文连接是: https://blog.csdn.net/freewebsys/article/details/84847904 未经博主允许不得转载。 博主地址是&#xff1a;http://blog.csdn.net/freewebsys 1&#xff0c;关于PRML 《Pattern Recognition and Machine Learning》&#xff0c;中文译名《模式识别与…