c语言一个处理文本文件的例子
功能
读取一个文本文件,将其中的文本按规则转换为int数据,然后对数据进行处理。文本的格式类似36 565 233...
代码
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
#include <string.h> const char delimiter[] = { ' ' }; u16 data[2100]; int ParseData(char *str)
{
char *split = NULL;
int i = 0; split = strtok(str, delimiter); while (1)
{
if (split != NULL)
{
data[i++] = atoi(split);
split = strtok(NULL, delimiter);
}
else
{
return i;
}
}
} int main(int argc, char **argv)
{
FILE *fp = NULL;
char tmp[100000]; int counter = 0;
int ch;
int i;
float index = 0; if (argc != 2)
{
printf("please enter the data path\n");
return -1;
} argv++; fp = fopen(*argv, "r"); if (NULL == fp)
{
printf("file open Fail!\n");
return -1;
} do
{
/* read a char from the file */
ch = fgetc(fp);
tmp[counter++] = ch;
} while (ch != EOF); counter = ParseData(tmp); // if(counter != 2080)
// {
// printf("data amount is %d , should be 2080\n",counter);
// return -1;
// } // for (i = 0; i < counter; i++)
// {
// printf("%d ", data[i]);
// } fclose(fp); fp = NULL; // GetCentroid(data,&index); printf("index = %0.1f \n",index); return 0;
}
解释
- 使用argv 传入文本路径
- 使用fopen打开文件,使用fgetc读取文本中的字符
- 使用strtok来分割字符
- 使用atoi来转换字符数据为整形数据
注意点
- 文本需要转换为ANSI编码
- 没有防错功能,需要确保文本输入没问题
- ch必须定义为整形,虽然fgetc返回char
- 文件使用完毕后需调用fclose
c语言一个处理文本文件的例子的更多相关文章
- 一个简单的CORBA例子
因为对CORBA分析的需要,这里写一个简单的CORBA例子.从JDK1.2开始,JDK中集成了ORB的实现,本例子使用了JDK1.7,对于JDK1.2+应该都没有问题.这个例子实现一个简单的加减乘除的 ...
- 基于gSOAP使用头文件的C语言版web service开发过程例子
基于gSOAP使用头文件的C语言版web service开发过程例子 一服务端 1 打开VS2005,创建一个工程,命名为calcServer. 2 添加一个头文件calc.h,编辑内容如下: 1// ...
- 轻松创建nodejs服务器(1):一个简单nodejs服务器例子
这篇文章主要介绍了一个简单nodejs服务器例子,本文实现了一个简单的hello world例子,并展示如何运行这个服务器,需要的朋友可以参考下 我们先来实现一个简单的例子,hello world ...
- 关于Java中的继承和组合的一个错误使用的例子
[TOC] 关于Java中的继承和组合的一个错误使用的例子 相信绝大多数人都比较熟悉Java中的「继承」和「组合」这两个东西,本篇文章就主要就这两个话题谈论一下.如果我某些地方写的不对,或者比较幼稚, ...
- [C语言]一个很实用的服务端和客户端进行UDP通信的实例
前段时间发了个TCP通信的例子,现在再来一个UDP通信的例子.这些可以作为样本程序,用到开发中.“裸写”socket老是记不住步骤,经常被鄙视…… 下面的例子很简单,写一个UDP的server用于收包 ...
- java 多线程——一个定时调度的例子
java 多线程 目录: Java 多线程——基础知识 Java 多线程 —— synchronized关键字 java 多线程——一个定时调度的例子 java 多线程——quartz 定时调度的例子 ...
- 使用Multiplayer Networking做一个简单的多人游戏例子-3/3(Unity3D开发之二十七)
使用Multiplayer Networking做一个简单的多人游戏例子-1/3 使用Multiplayer Networking做一个简单的多人游戏例子-2/3 使用Multiplayer Netw ...
- 使用Multiplayer Networking做一个简单的多人游戏例子-2/3(Unity3D开发之二十六)
猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/51007512 ...
- 使用Multiplayer Networking做一个简单的多人游戏例子-1/3(Unity3D开发之二十五)
猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/51006463 ...
随机推荐
- SSM中(Spring-SpringMVC-Mybatis)(二:整合)
使用Maven整合一个SSM,当然要配有Maven环境,Maven的环境配置自行百度,挺好配的 创建一个Maven项目以后,目录结构如图所示: 然后就是各部分配置: 首先pom导入依赖jar包: &l ...
- 小白的Python之路 day5 time,datatime模块详解
一.模块的分类 可以分成三大类: 1.标准库 2.开源模块 3.自定义模块 二.标准库模块详解 1.time与datetime 在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时 ...
- 第一篇:Win10系统搭建Python+Django+Nginx+MySQL 开发环境详解(完美版)
Win10+Python+Django+Nginx+MySQL 开发环境搭建详解 PaulTsao 说明:本文由作者原创,仅供内部参考学习与交流,转载引用请注明出处,用于商业目的请联系作者本人. Wi ...
- python 常用算法
算法就是为了解决某一个问题而采取的具体有效的操作步骤 算法的复杂度,表示代码的运行效率,用一个大写的O加括号来表示,比如O(1),O(n) 认为算法的复杂度是渐进的,即对于一个大小为n的输入,如果他的 ...
- HTTP首部解析
HTTP首部解析 转载请注明出处:HTTP首部解析 文章目录 1.与HTTP协议相关的Web服务器 2.HTTP首部 与HTTP协议相关的Web服务器 在说明HTTP首部相关知识之前,有必要先了解一下 ...
- 微信小程序 - 上拉加载
demo.wxml 文件 <view wx:for="{{listdata}}" wx:key="listdata" class='listitem'& ...
- 【动态规划】洛谷P1006传纸条
题目描述: 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了.幸运的 ...
- vmware 解决 authentication token manipulation error
vmvare虚拟机长时间未使用,导致再次登录的时候密码忘了,无法登录. 启动时长按shift,进入root(recovery)模式, (recovery mode),进入"Recovery ...
- HashSet源码阅读
HashSet的实现基于HashMap 看几个简单的初始化方法 public HashSet() { map = new HashMap<>(); } public HashSet(Col ...
- linux报错:命令未找到
前段时间看到一个比较好玩的项目:[musicbox](https://github.com/darknessomi/musicbox) 开始用git clone安装,输入命令无法运行.开始以为安装有问 ...