当前位置: 首页 > news >正文

C语言和mfc按格式读取文件数据

fscanf()函数的功能是从文件中按格式读取一个或多个数据;

例如文件中有一行数据,

22 3.34 hello

则使用 fscanf(fp, "%d%f%s", &a, &f, str) 可一次读取整型、浮点、字符串三个数据;

此函数位于C标准库头文件<stdio.h>中;

示例;

测试文件如下;

代码; 

void CFiletest1View::OnDraw(CDC* pDC)
{CFiletest1Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereint a = 0;float f = 0;char str[100] = "";CString str1;int d=0;float f2=0;FILE* fp = fopen("test1.txt", "r");for(int i=0; i<3; i++){fscanf(fp, "%d%f%s", &a, &f, str);str1.Format("%d,%f,%s", a, f, str);pDC->TextOut(50, 50 + i*20, str1);d += a;    f2 += f;}str1.Format("整数和:%d", d);pDC->TextOut(50, 115, str1);str1.Format("浮点数和:%f", f2);pDC->TextOut(50, 135, str1);fclose(fp);
}

运行如下; 

在MFC中常常使用的是CStdioFile类;能否仍然可以使用fscanf()函数呢?

首先看一下,使用CStdioFile类打开文件后,返回的是BOOL类型,而fscanf需要一个FILE*类型;如果用C标准库函数fopen打开文件,返回的就是FILE*类型;

查一下MFC文档;

CStdioFile类有一个成员m_pStream,

CStdioFile::m_pStream
    m_pStream数据成员是指向一个打开文件的指针,该文件是由C运行时函数fopen返回的。如果文件从来没有被打开过或者已经被关闭了,则它是NULL。 

从文档说明这个m_pStream就是C标准库函数fopen打开文件后的返回值;

那么改为如下的代码看一下;

void CFiletest1View::OnDraw(CDC* pDC)
{CFiletest1Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereint a = 0;float f = 0;char str[100] = "";CString str1;int d=0;float f2=0;CStdioFile file;file.Open("test1.txt", CFile::modeRead);for(int i=0; i<3; i++){//根据字符类型读取txt文件中的数据fscanf(file.m_pStream, "%d%f%s", &a, &f, str);str1.Format("%d,%f,%s", a, f, str);pDC->TextOut(50, 50 + i*20, str1);d += a;    f2 += f;}str1.Format("整数和:%d", d);pDC->TextOut(50, 115, str1);str1.Format("浮点数和:%f", f2);pDC->TextOut(50, 135, str1);file.Close();
}

运行一下;没有问题,一样的;

相关文章:

C语言和mfc按格式读取文件数据

fscanf()函数的功能是从文件中按格式读取一个或多个数据&#xff1b; 例如文件中有一行数据&#xff0c; 22 3.34 hello 则使用 fscanf(fp, "%d%f%s", &a, &f, str) 可一次读取整型、浮点、字符串三个数据&#xff1b; 此函数位于C标准库头文件<stdio…...

SQLyog 各版本下载与安装(目前最新版本为13.2.0)

文章目录 一、SQLyog Ultimate 各版本下载1. For Windows x642. For Windows x86 二、SQLyog Community 各版本下载1. For Windows x642. For Windows x863. For Linux x86_644. For Linux i386 三 、SQLyog 安装四、如何解决SQLyog试用期到期问题五、最后 数据库可视化工具&am…...

CopyOnWrite 容器

CopyOnWrite容器是Java并发包中提供的一种特殊类型的集合,它的特点是在进行修改操作时不会修改原始容器,而是创建一个新的容器副本进行修改,这样可以避免并发修改异常(ConcurrentModificationException)。 主要的CopyOnWrite容器包括: CopyOnWriteArrayList:这是一个基…...

云服务部署:AWS、Azure和GCP比较

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…...

Linux安装Ansible管理工具

条件情况说明 准备4台机器&#xff0c;是单master集群安装 192.168.186.128 ansible 192.168.186.129 node1 192.168.186.130 node2 192.168.186.131 node3 #永久修改主机名 hostnamectl set-hostname ansible && bash #在ansible上操作 hostnamectl set-hostname n…...

七天学会C语言-第二天(数据结构)

1. If 语句&#xff1a; If 语句是一种条件语句&#xff0c;用于根据条件的真假执行不同的代码块。它的基本形式如下&#xff1a; if (条件) {// 条件为真时执行的代码 } else {// 条件为假时执行的代码 }写一个基础的If语句 #include<stdio.h> int main(){int x 10;…...

高级功能的PID控制器在电离规等真空计线性化处理中的应用

摘要&#xff1a;针对高真空度用皮拉尼计和电离规信号的非线性和线性两种输出规格&#xff0c;为改进高真空度的测量和控制精度&#xff0c;本文提出了线性化处理的解决方案。解决方案的关键是采用多功能超高精度的真空压力控制器&#xff0c;具体内容一是采用控制器自带的最小…...

元素全排列问题的新思路(DFS,递归,计数器)

目录 前言 1&#xff0c;普通DFS实现1~n的元素全排列 2&#xff0c;计数器DFS实现重复元素全排列 总结 前言 我们之前看到的全排列问题的解法都是通过交换法达到的&#xff0c;去重的效果也是通过判断当前元素前是否有相同元素来实现&#xff0c;今天我们带来一个全新的思路…...

机器学习 day35(决策树)

决策树 上图的数据集是一个特征值X采用分类值&#xff0c;即只取几个离散值&#xff0c;同时也是一个二元分类任务&#xff0c;即标签Y只有两个值 上图为之前数据集对应的决策树&#xff0c;最顶层的节点称为根节点&#xff0c;椭圆形节点称为决策节点&#xff0c;矩形节点称…...

小程序引入vant-Weapp保姆级教程及安装过程的问题解决

小知识&#xff0c;大挑战&#xff01;本文正在参与“程序员必备小知识”创作活动。 本文同时参与 「掘力星计划」&#xff0c;赢取创作大礼包&#xff0c;挑战创作激励金 当你想在小程序里引入vant时&#xff0c;第一步&#xff1a;打开官方文档&#xff0c;第二步&#xff…...

LeetCode 周赛上分之旅 #45 精妙的 O(lgn) 扫描算法与树上 DP 问题

⭐️ 本文已收录到 AndroidFamily&#xff0c;技术和职场问题&#xff0c;请关注公众号 [彭旭锐] 和 BaguTree Pro 知识星球提问。 学习数据结构与算法的关键在于掌握问题背后的算法思维框架&#xff0c;你的思考越抽象&#xff0c;它能覆盖的问题域就越广&#xff0c;理解难度…...

JavaScript-DOM实战案例

一、window定时器 1.window定时器方法 有时我们并不想立即执行一个函数&#xff0c;而是等待特定一段时间之后再执行&#xff0c;我们称之为“计划调用&#xff08;scheduling a call&#xff09;”。 目前有两种方式可以实现&#xff1a; setTimeout 允许我们将函数推迟到一…...

STM32 学习笔记1:STM32简介

1 概述 STM32&#xff0c;从字面上来理解&#xff0c;ST 是意法半导体&#xff0c;M 是 Microelectronics 的缩写&#xff0c;32 表示 32 位&#xff0c;合起来理解&#xff0c;STM32 就是 ST 公司开发的 32 位微控制器。是一款基于 ARM 公司推出的基于 ARMv7 架构的 32 位 Co…...

Hadoop-Hbase

1. Hbase安装 1.1 安装zookeeper、 hbase 解压至/opt/soft&#xff0c;并分别改名 配置环境变量并source生效 #ZK export ZOOKEEPER_HOME/opt/soft/zk345 export PATH$ZOOKEEPER_HOME/bin:$PATH #HBASE_HOME export HBASE_HOME/opt/soft/hbase235 export PATH$HBASE_HOME/b…...

关于不停机发布新版本程序的方式

“不停机发布新版本程序”&#xff0c;暂且这么称呼吧&#xff0c;其实就是所说的滚动发布、灰度发布、金丝雀发布和蓝绿发布。 之所以会总结性地提一下这几个概念&#xff0c;主要是本次出门游历&#xff0c;流浪到了乌兰察布市四王子旗&#xff0c;在这儿遇上了个有趣儿的家伙…...

MeterSphere压测,出现HttpHostConnectException

现象&#xff1a;MeterSphere更换压力机后&#xff0c;压测出现出现HttpHostConnectException 解决方案&#xff1a; net.ipv4.tcp_tw_reuse默认是0或者2&#xff0c;更改为1 net.ipv4.tcp_tw_reuse&#xff0c;表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连…...

cherry-pick

要将dev分支的某次提交给master分支&#xff0c;可以使用以下命令&#xff1a; 1. 切换到dev分支&#xff1a;git checkout dev 2. 查看提交历史&#xff0c;找到要提交给master的某次提交的commit hash&#xff08;假设为 <commit_hash>&#xff09; 3. 切换到master…...

opencv形状目标检测

1.圆形检测 OpenCV图像处理中“找圆技术”的使用-图像处理-双翌视觉OpenCV图像处理中“找圆技术”的使用,图像处理,双翌视觉https://www.shuangyi-tech.com/news_224.htmlopencv 找圆心得&#xff0c;模板匹配比霍夫圆心好用 - 知乎1 相比较霍夫找直线算法&#xff0c; 霍夫找…...

k8s中无法获取到nginx-ingress的客户端真实ip地址x-forwarded-for

1.查看阿里云的nginx-ingress配置文档https://help.aliyun.com/document_detail/42205.html 容器K8s配置方案 如果您的服务部署在K8s上&#xff0c;K8s会将真实的客户端IP记录在X-Original-Forwarded-For字段中&#xff0c;并将WAF回源地址记录在X-Forwarded-For字段中。您需要…...

MySQL(4)索引实践(2)

一、分页优化 limit 1000 10&#xff0c; 其实不是只查询出10条记录&#xff0c;mysql底层会查询出1100条&#xff0c;然后舍去前1000条 所以&#xff0c;随着页的增多&#xff0c;查询效率会降低 1、可以使用取范围的方式比如id>1000 方式优化 2、使用关联查询优化&#xf…...

Lightpanda:解决现代Web自动化性能瓶颈的创新方案

Lightpanda&#xff1a;解决现代Web自动化性能瓶颈的创新方案 【免费下载链接】browser The open-source browser made for headless usage 项目地址: https://gitcode.com/GitHub_Trending/browser32/browser 在动态网页内容成为主流的今天&#xff0c;传统无头浏览器面…...

Axure隐藏技巧大公开:动态面板与热区的高级用法(含常见问题解决方案)

Axure隐藏技巧大公开&#xff1a;动态面板与热区的高级用法&#xff08;含常见问题解决方案&#xff09; 在原型设计领域&#xff0c;Axure RP早已超越了基础线框工具的角色&#xff0c;成为交互设计师手中的瑞士军刀。但许多用户在使用动态面板和热区时&#xff0c;往往只停留…...

别再只盯着Mesh了!聊聊NoC拓扑选型:从Ring、Torus到Fat Tree,你的芯片设计该怎么选?

芯片设计中的NoC拓扑选型实战指南&#xff1a;从Ring到Fat Tree的深度权衡 当你在设计一款高性能芯片时&#xff0c;是否曾为选择合适的片上网络(NoC)拓扑而纠结&#xff1f;面对Ring、Mesh、Torus、Fat Tree等多种选项&#xff0c;每个决策都可能直接影响芯片的性能、功耗和面…...

深度学习毕业设计题目实战指南:从选题到部署的完整技术路径

最近在帮学弟学妹们看毕业设计&#xff0c;发现一个挺普遍的现象&#xff1a;大家对深度学习的理论热情很高&#xff0c;但一到动手实现&#xff0c;就各种“翻车”。环境配一天&#xff0c;模型跑不动&#xff1b;好不容易跑起来&#xff0c;精度死活上不去&#xff1b;最后模…...

AI报告文档审核护航飞行安全:IACheck打造航电与飞控检测报告智能审核新利器

在航空领域&#xff0c;航电系统与飞控系统被誉为飞行器的“大脑”和“神经中枢”。航电系统负责信息处理与通信导航&#xff0c;飞控系统则负责飞行姿态控制与稳定执行。两者协同运行&#xff0c;直接关系到飞行安全与任务成败。在如此高安全要求的领域中&#xff0c;任何细微…...

FastAPI新手避坑指南:从零搭建你的第一个Python后端项目(附清华源加速)

FastAPI新手避坑指南&#xff1a;从零搭建你的第一个Python后端项目 作为一名长期使用Python构建后端服务的开发者&#xff0c;我见过太多新手在FastAPI入门阶段踩同样的坑。这篇文章将带你避开那些教科书不会告诉你的陷阱&#xff0c;用最优雅的方式完成第一个生产级项目搭建。…...

图像分类模型实战指南:从技术选型到部署优化的全流程解析

图像分类模型实战指南&#xff1a;从技术选型到部署优化的全流程解析 【免费下载链接】pytorch-image-models huggingface/pytorch-image-models: 是一个由 Hugging Face 开发维护的 PyTorch 视觉模型库&#xff0c;包含多个高性能的预训练模型&#xff0c;适用于图像识别、分类…...

Luma3DS从源码编译终极指南:开发者环境搭建和完整构建流程详解

Luma3DS从源码编译终极指南&#xff1a;开发者环境搭建和完整构建流程详解 【免费下载链接】Luma3DS Noob-proof (N)3DS "Custom Firmware" 项目地址: https://gitcode.com/gh_mirrors/lu/Luma3DS Luma3DS是Nintendo 3DS家族设备的"傻瓜式"自定义固…...

DanKoe 视频笔记:掌控人生:如何获得你想要的生活

在本教程中&#xff0c;我们将探讨如何摆脱传统教育和工作模式的束缚&#xff0c;通过自我教育、技能构建和项目实践&#xff0c;主动创造并获取你真正想要的生活。我们将分析现有体系的局限&#xff0c;并提供一个清晰的五步行动框架。 传统教育的局限与个人选择 现代教育体…...

嵌入式INI文件解析技术实现与应用

## 1. 嵌入式INI文件解析技术实现### 1.1 INI文件格式解析需求在嵌入式系统开发中&#xff0c;配置文件管理是常见需求。INI文件因其结构简单、可读性强&#xff0c;成为轻量级配置存储的理想选择。典型的INI文件结构包含三个核心要素&#xff1a;1. 节(Section)&#xff1a;用…...