c++文件操作(2)-- 按照指定格式读写文件

这篇具有很好参考价值的文章主要介绍了c++文件操作(2)-- 按照指定格式读写文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

按照指定格式写文件

代码说明:  

按照指定格式读文件 -- 解析一定格式的字符串

代码说明: 

注意: 

问: 为什么使用getline()?


 文章来源地址https://www.toymoban.com/news/detail-821917.html

按照指定格式写文件

在实际开发中,我们以一定的格式写入文件当中。 

其实就是使用stringstream类对象来实现。

#include <iostream>
#include <stdlib.h>
#include <sstream>
#include <fstream>
#include <string>

using namespace std;

int main(void) {

	ofstream io;
	stringstream ret;

	string name = "张三";
	int age = 18;

	io.open("data.txt");

	if (!io.is_open()) return 1;

	ret << "姓名: " << name << " 年龄:" << age << endl;

	io << ret.str();

	io.close();

	system("pause");

	return 0;
}

c++文件操作(2)-- 按照指定格式读写文件,c++,开发语言 

代码说明:  

大部分操作和写文件类似,只是此处我们使用了,stringstream ret对象来实现将数据以一定的格式拼接起来(和C语言中的sprintf类似),然后将其转化成字符串,写入到文件中。

以这样的方式可以很方便的以一定格式将数据写入文件中。 

 

按照指定格式读文件 -- 解析一定格式的字符串

我们上面以一定的格式将数据写入到了文件中,但是我们应该怎样读这些数据呢? 

首先,要明确,像"姓名:  张三   年龄:  18 " 这样的数据,我们程序中(内存)只需要张三和18,那么如何将数据从规定格式的字符串中解析出来呢?

在C语言中,我们使用sprintf()来拼接字符串,使用sscanf()来解析字符串。但是c++中只提供了stringstream类实现拼接,并没有提供提供解析的方法。 所以,我们需要借助C语言的sscanf()来解析读取到的字符串。 

代码:   

int main(void) {

	ifstream io;
	// 用于存放从文件中读取的字符串(未解析)
	string data;

	// 用于存储解析的数据
	char name[32];
	int age = 0;

	io.open("data.txt");

	if (!io.is_open()) return 1;

	getline(io,data);  // 读取一行

	// 将字符串中对应的数据存放到name和age中去
	sscanf_s(data.c_str(), "姓名: %s 年龄: %d", name,sizeof(name), &age);

	cout << name << " " << age << endl;

	io.close();

	system("pause");

	return 0;
}

代码说明: 

上面我们给文件中按照一定格式写入了数据,我们先将这些数据读取出来(字符串),存放到data变量中。 

然后我们使用sscanf(vs中使用sscanf_s)来进行解析,将我们需要的数据解析到,name和age当中。 

sscanf解析字符串中必须格式和data中数据的格式相同(空白字符不需要,因为sscanf可以自动跳过空白字符,只要其它字符对应就行) 。需要解析出的数据,直接用格式化占位符代替,然后在后面写上用于存储的解析出数据的对应变量。

注意: 

我们代码中使用getline()函数来读取文件中的数据,表示一次读取一行。 

有两个参数,第一个参数表示,从哪里读取,第二个参数是存放读取到数据的变量。 

问: 为什么使用getline()?

1.  就是我们需要读取一行数据的时候就使用getline就行。 

2. cin >> 和scanf()类似,都是遇到空白字符结束读取,如果一条数据中存在空白字符,那么使用cin >> 就无法读取完整的数据。  所以此时使用getline()。 

3.  上面的输入格式是,一条数据占一行,而且数据之间存在空白字符,所以使用getline读取。因为只有按照相同的格式才能正确的解析出来数据。(所以要按照写入的格式读取) 

 

到了这里,关于c++文件操作(2)-- 按照指定格式读写文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++——fstream文件读写操作

    文件类型 文本文件 - 文件以文本的 ASCII码 形式存储在计算机中 二进制文件 - 文件以文本的 二进制 形式存储在计算机中,用户一般不能直接读懂它们 操作文件类 ofstream:写操作 ifstream: 读操作 fstream : 读写操作 文件打开方式 打开方式 解释 ios::in 为读文件而打开文件 ios

    2024年01月24日
    浏览(40)
  • <九> objectARX开发:读写Excel、json与txt格式文件

      在实际应用中,有时候我们需要通过文本格式或者表格等格式来传递数据,例如*.txt、Excel表格或者*.json文件。此时我们就需要想办法来读写这些数据。本节我们来说一下如何读写读写Excel、json与txt格式文件。 2.1 读写Excel   excel文件的读写有多种方式来实现,这里我们

    2024年02月09日
    浏览(50)
  • C语言文件的读写操作

    目录 一,文件 1.文本模式,二进制模式 2.标准文件 二,文件的打开和关闭 1.文件指针 1.1文件的打开  1.2文件的关闭 三,文件的顺序读写  1.fgetc 2.fputc 3.fgets 4.fputs 5.fprintf 6.fscanf 7.fwrite 8.fread  9.表格 四,文件的随机读写 1,fseek   2,ftell 3,rewind 判断文件结束 1,feof 2,判断

    2024年02月10日
    浏览(41)
  • 【c语言】文本文件的读写操作

    创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡𖥦)!! 主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步! 🔥c语言系列专栏:c语言之路重点知识整合 🔥 给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ 本文基

    2024年01月17日
    浏览(39)
  • C语言如何使用文件读写来处理文件操作?

    首先,让我们来谈谈文件读写,这听起来有点像一个神秘的活动,就像你是一个特工在阅读和修改机密文件一样!所以,假设你是一个特工小鱼,正在进行秘密任务。 首先,你需要给自己起一个特工代号。我们先把你叫做Agent007。接下来,你需要打开一个目标文件,就像你发

    2024年02月12日
    浏览(50)
  • 【c语言】二进制文件的读写操作

    创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡𖥦)!! 主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步! 🔥c语言系列专栏:c语言之路重点知识整合 🔥 给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ 本文基

    2024年02月12日
    浏览(43)
  • java将指定文件夹按照文件目录压缩为zip压缩包

    将指定的压缩包作为流发送给浏览器 下面粘贴一些没有用的东西 ,是我自已业务的逻辑,,主要逻辑是根据传入文件不同 判断将压缩包发送给浏览器 还是将xls模板发送给浏览器

    2024年02月16日
    浏览(39)
  • linux中在指定路径中按照文件名模糊查找文件之find命令

    大家在实际项目中,可能有时候在排查问题中需要查找一些系统文件,然后看下对应文件信息。例如日志文件信息,数据文件信息等,太多不方便查找时,就可以使用该相关命令来查找最合适; 精准搜索 find 指定路径 -name \\\"搜索内容\\\" 模糊搜索 find 指定路径 -name \\\"*模糊搜索内

    2024年02月06日
    浏览(91)
  • 07-1_Qt 5.9 C++开发指南_文件系统及文件读写_文本文件读写(使用 QTextStream 进行文件读写更为方便)

    文本文件是指以纯文本格式存储的文件,例如用 Qt Creator 编写的 C++程序的头文件 (.h 文件)和源程序文件 (.cpp 文件)。HTML 和 XML 文件也是纯文本文件,只是其读取之后需要对内容进行解析之后再显示。 Qt 提供了两种读写纯文本文件的基本方法, 一种是用 QFile 类的 IODevice 读写

    2024年02月13日
    浏览(53)
  • C++文件操作基础 读写文本、二进制文件 输入输出流 文件位置指针以及随机存取 文件缓冲区以及流状态

    文本文件一般以行的形式组织数据。 包含头文件: #include fstream 类: ofstream(output file stream) ofstream 打开文件的模式(方式):类内open()成员函数参数2.参数1是文件存储/创建路径 例如:fout.open(filename,ios::app); 对于 ofstream,不管用哪种模式打开文件,如果文件不存在,都会创

    2024年01月25日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包