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

简单分享-获取.txt文件内数据 文件内数据逗号分隔 分隔符 C语言

简单分享-获取.txt文件内数据 文件内数据逗号分隔 分隔符 C语言


数据存储到文件中,把文件数据读取到数组,方便数据处理。

# include <stdio.h>
# include <stdlib.h>
# include <string.h>#define DATANUM 307200 //数组个数 
int main() {unsigned short  array[DATANUM];   FILE *file;file = fopen("data.txt", "r"); // 替换为您的文件名 在该.C在文件夹下  long int position =0;int index = 0,t=0;if (file == NULL) {perror("无法打开文件");return EXIT_FAILURE;}char buffer[100000]; //获取文件字符串 while (fgets(buffer, sizeof(buffer), file)) {int k=0;long recodestart=0; 
/*
当调用strtok()时,它会查找输入字符串中第一个出现的分隔符,并将其替换为\0(空字符),从而结束当前标记。
每次成功调用后,strtok()返回指向被分割出的子字符串的指针。如果没有更多可提取的子字符串,则返回NULL。
第一次调用时,提供待分解的字符串。
*/ char *token = strtok(buffer, ",");   //如果文件分隔符是空格把“,”换成“ ”就好while ( index < DATANUM) { //token != NULL &&if(token != NULL) // {if(t==1){t=0;index=index-1; //如果buffer取字符串刚好取到数据的一半,则存储的数组需要抛弃上一个数据 ,例如:数据65535,buffer最后只取到65,数组就会保存65。这个数组就是异常的,需要去掉。  }}array[index++] = atoi(token);token = strtok(NULL, ",");if(token == NULL)    //如果采集不到分隔符号“,”返回NULL {if(buffer[99998] != NULL)  //buffer[99999]='\0' ,buffer最后取字符如果不是分隔符“,” ,则需要往后退,确保下次取的是完整的数据 {while(buffer[99998-k] != NULL){k++;printf("buffer[99998-%d]=%c\n",k,buffer[99998-k]);//用于调试可屏蔽 }t=1; //如果buffer取字符串刚好取到数据的一半,则存储的数组需要抛弃上一个数据 ,例如:数据65535,buffer最后只取到65,数组就会保存65。这个数组就是异常的,需要去掉。 }elsek=0;printf("k=%d ",k);   //用于调试可屏蔽 position = ftell(file);  //查看文件指针位置  //用于调试可屏蔽 printf("F=%ld ",position);//用于调试可屏蔽 recodestart += (99999-k);   fseek(file, (long)(recodestart), SEEK_SET);//将文件指针移到指定位置 position = ftell(file); //用于调试可屏蔽 printf("E=%ld\n",position);//用于调试可屏蔽 fgets(buffer, sizeof(buffer), file);//从当前文件指针位置获取1000000字符到buffer  token = strtok(buffer, ","); //提供待分解的字符串 k=0;}}// 可以在这里对array进行进一步处理,例如打印或计算等}fclose(file);
///
//将采集的数组打印出来,用文件对比工具对比,数组是否正确 
//以下代码用于调试可屏蔽 
///   int i=0;FILE *destFile = fopen("data2.txt", "w");  //创建.ini文件 if (destFile == NULL) {perror("Error opening destination file");  //创建文件失败提示 return EXIT_FAILURE;}for(i=0;i<DATANUM;i++){fprintf(destFile, "%d,",array[i]); }fclose(destFile); //关 printf("complete\n");  return EXIT_SUCCESS;
}

运行结果
在这里插入图片描述
文件对比结果
在这里插入图片描述

相关文章:

简单分享-获取.txt文件内数据 文件内数据逗号分隔 分隔符 C语言

简单分享-获取.txt文件内数据 文件内数据逗号分隔 分隔符 C语言 数据存储到文件中&#xff0c;把文件数据读取到数组&#xff0c;方便数据处理。 # include <stdio.h> # include <stdlib.h> # include <string.h>#define DATANUM 307200 //数组个数 int ma…...

从0开始手把手带你入门Vue3

前言 本文并非标题党&#xff0c;而是实实在在的硬核文章&#xff0c;如果有想要学习Vue3的网友&#xff0c;可以大致的浏览一下本文&#xff0c;总体来说本篇博客涵盖了Vue3中绝大部分内容&#xff0c;包含常用的CompositionAPI(组合式API)、其它CompositionAPI以及一些新的特…...

C# USB通信技术(通过LibUsbDotNet库)

文章目录 1.下载LibusbDotNet库2.引入命名空间3. 实例化USB设备4.发送数据5.关闭连接 1.下载LibusbDotNet库 右击项目选择管理NuGet程序包在弹出的界面中搜索LibusbDotNet&#xff0c;然后下载安装。 2.引入命名空间 using LibUsbDotNet; using LibUsbDotNet.Main;3. 实例化…...

常用Java API

1 字符串处理 1.1 String 类 String 类是 Java 中不可变的字符序列。它提供了以下常用方法&#xff1a; length()&#xff1a;返回字符串的长度。 charAt(index)&#xff1a;返回指定索引处的字符。 substring(startIndex, endIndex)&#xff1a;返回从 startIndex 到 endI…...

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化&#xff0c;使其看起来更清晰&#xff0c;同时保持尺寸不变&#xff0c;通常涉及到图像处理技术如锐化、降噪、对比度增强…...

Java 回顾方法的定义

一、方法的定义 1&#xff0e;修饰符&#xff08;public static…&#xff09;详见博客【Java 方法的定义】 2&#xff0e;返回值&#xff08;int, double, char[],…., void&#xff09;详见博客【Java 方法的定义】 3. break&#xff1a;跳出switch 结束循环&#xff0c;详…...

网络安全产品认证证书大全(持续更新...)

文章目录 一、引言二、《计算机信息系统安全专用产品销售许可证》2.1 背景2.2 法律法规依据2.3 检测机构2.4 检测依据2.5 认证流程2.6 证书样本 三、《网络关键设备和网络安全专用产品安全认证证书》3.1 背景3.2 法律法规依据3.3 检测机构3.4安全认证和安全检测依据标准3.5 认证…...

win10 安装多个版本的python

1&#xff0c;安装python3.9 和python3.10 2, 安装完之后分别打开两个版本的Python的安装目录&#xff08;第一层目录&#xff09;&#xff0c;把pythonw.exe分别重命名为pythonw_39.exe和pythonw_310.exe&#xff0c;把python.exe复制一份&#xff0c;并分别重命名为python_…...

【ORACLE】数据备份

Oracle数据库备份是确保数据安全和可靠性的重要环节。Oracle提供了多种备份方法&#xff0c;包括冷备份、热备份、逻辑备份&#xff08;如使用expdp和impdp&#xff09;以及使用RMAN&#xff08;Recovery Manager&#xff09;进行物理备份。 冷备份&#xff1a;在数据库关闭的状…...

[Golang] goroutine

[Golang] goroutine 文章目录 [Golang] goroutine并发进程和线程协程 goroutine概述如何使用goroutine 并发 进程和线程 谈到并发&#xff0c;大多都离不开进程和线程&#xff0c;什么是进程、什么是线程&#xff1f; 进程可以这样理解&#xff1a;进程就是运行着的程序&…...

【前端】JavaScript高级教程:函数高级——执行上下文与执行上下文栈

文章目录 遍历提升与函数提升执行上下文执行上下文栈(1)执行上下文栈(2)面试题 遍历提升与函数提升 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>01_变量提升与函数提升</title> </head&…...

【阻抗管传递函数法】频域声压,即复声压是指什么

在阻抗管传递函数法中提到的“频域声压数据”&#xff0c;是通过对传声器测得的“时域声压信号”进行快速傅里叶变换&#xff08;FFT&#xff09;后得到的结果。 具体来说&#xff0c;这些频域声压数据指的是传声器测量的声压随时间变化的数据&#xff0c;经过傅里叶变换后&am…...

Python青少年简明教程:类和对象入门

Python青少年简明教程&#xff1a;类和对象入门 Python支持多种编程范式&#xff08;programming paradigms&#xff09;&#xff0c;即支持多种不同的编程风格和方法。初学者开始重点学习关注的编程范式&#xff0c;一般而言是面向过程编程和面向对象编程。面向过程编程&#…...

【vue+el-table】表格操作列宽度跟随按钮个数自适应, 方法封装全局使用

效果图 以上图片分别代表不同用户权限下所能看到的按钮个数, 操作列宽度也会自适应宽度, 就不会一直处于最大宽度, 导致其他权限用户看到的页面出现大量留白问题. 目录 解决方法解决过程中可能出现的问题width赋值时为什么不放update()中btnDom为什么不能直接调用forEach为…...

OpenAI发布全新o1 AI模型具备推理能力

&#x1f989; AI新闻 &#x1f680; OpenAI发布全新o1 AI模型具备推理能力 摘要&#xff1a;OpenAI推出新AI模型o1&#xff0c;具备推理能力&#xff0c;旨在比人类更快地解决复杂问题。o1与o1-mini版本同时发布&#xff0c;前者训练成本较高&#xff0c;但在编程和多步骤问…...

如何在本地部署大语言模型

近年来&#xff0c;随着大语言模型&#xff08;如GPT、BERT等&#xff09;的迅速发展&#xff0c;越来越多的开发者和研究人员希望在本地环境中部署这些强大的模型&#xff0c;以便用于特定的应用场景或进行个性化的研究。本文将详细介绍如何在本地部署大语言模型&#xff0c;涵…...

秒懂:环境变量

前言 1.Linux当中70%以上的命令程序都是用C语言写的 2.执行命令程序和运行自己写的程序没有任何区别 3.自己程序运行必须要带路径&#xff08;绝对/相对都可&#xff09; 4. 系统指令可带可不带&#xff08;带不要瞎带&#xff09; 变量具有全局特性是…...

使用 @Param 注解标注映射关系

目录 1. 场景描述 2. SQL语句 3. 方法定义 4. Param注解的使用 5. 总结 在开发过程中&#xff0c;我们经常需要在Java应用程序中执行数据库操作&#xff0c;尤其是更新操作。在Spring Data JPA框架中&#xff0c;我们可以使用原生SQL语句来执行这些操作&#xff0c;并通过…...

Java学习中在打印对象时忘记调用 .toString() 方法或者没有重写 toString() 方法怎么办?

在 Java 编程中&#xff0c;toString() 方法对于调试、日志记录以及打印对象信息至关重要。然而&#xff0c;许多初学者在打印对象时可能会忘记调用 .toString() 方法&#xff0c;或者在自定义类中没有重写 toString() 方法&#xff0c;这可能导致输出结果不符合预期。 一、Ja…...

如何评估一个RAG(检索增强生成)系统-上篇

最近项目中需要评估业务部门搭建的RAG助手的效果好坏&#xff0c;看了一下目前业界一些评测的方法。目前分为两大类&#xff0c;基于传统的规则、机器学习的评测方法&#xff0c;基于大模型的评测方法。在这里做一些记录&#xff0c;上篇主要做评测方法的记录&#xff0c;下篇会…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名&#xff08;Class Name)2.协议名&#xff08;Protocol Name)3.方法名&#xff08;Method Name)4.属性名&#xff08;Property Name&#xff09;5.局部变量/实例变量&#xff08;Local / Instance Variables&…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...