c语言处理excel表格_c语言一般文件的处理过程

c语言处理excel表格_c语言一般文件的处理过程1写excel是.csv后缀,跳跃间隔符是‘\t’ FILE*fp; fp=fopen(“./test.csv”,”w”);//写 for(i=0;i<4;i++) fprintf(fp,”%c,%d,%d\n”,chy[i],data[i],d2); fclose(fp);2读指定位置读数,如倒序读数,从末尾向前读数!先看代码!倒序读最后一行的数据#include<bits/stdc++.h>#define

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

思路来源:https://blog.csdn.net/hongzhen91/article/details/57422897

1 写

.csv 是 excel 后缀,跳跃间隔符是 ‘,’

	FILE *fp ;
	fp = fopen("./test.csv","w") ; // 写 
	for (i=0 ; i<4 ; i++)
		fprintf(fp,"%c,%d,%d\n", chy[i], data[i], d2) ;
	fclose(fp);

c语言处理excel表格_c语言一般文件的处理过程

2 读

指定位置读数,如倒序读数,从末尾向前 ( 向着开头 ) 读数!

先看 代码!

倒序读 最后一行的数据

#include<bits/stdc++.h> 
#define num 20
using namespace std;

void writeExcel()
{ 
   
	char chy[4]={ 
    'x' ,'a' ,'h','w' }, ch, t;
	int data[4]={ 
    1 , 3 , 6 ,9	}, d1 = -1, d2 = 5;
	int i ;
	FILE *fp ;
	fp = fopen("./test.csv","w") ; // 写 
	for (i=0 ; i<4 ; i++)
		fprintf(fp,"%c,%d,%d\n", chy[i], data[i], 5) ;
	fclose(fp);
	
	cout << "读:" << endl; 
	fp = fopen("./test.csv","r") ; // 读 
	cout << "d1 = " << d1 << endl;
	cout << "ftell(fp) = " << ftell(fp) << endl;
	fseek(fp, 0L, 2); // 末尾 
	cout << "ftell(fp) = " << ftell(fp) << endl << endl;
	
	fseek(fp, -3L, 1); // 向前移动 3L 
	cout << "ftell(fp) = " << ftell(fp) << endl;
	fscanf(fp, "%d", &d1); // 5
	cout << d1 << endl;
	cout << "ftell(fp) = " << ftell(fp) << endl << endl;
	
	fseek(fp, -3L, 1);
	cout << "ftell(fp) = " << ftell(fp) << endl;
	fscanf(fp, "%d", &d1); // 9
	cout << d1 << endl;
	cout << "ftell(fp) = " << ftell(fp) << endl<< endl;
	
	fscanf(fp, "%c", &ch); // 9后面的',' 
	cout << ch << endl;
	cout << "ftell(fp) = " << ftell(fp) << endl<< endl;
	
	fseek(fp, -4L, 1);
	cout << "ftell(fp) = " << ftell(fp) << endl;
	fscanf(fp, "%c", &ch); // w 
	cout << ch << endl;
	cout << "ftell(fp) = " << ftell(fp) << endl<< endl;
	
	fclose(fp);
}

int  main()
{ 
   					
	writeExcel()  ;	
	
	system("pause"); 
	return 0;
}
 

c语言处理excel表格_c语言一般文件的处理过程 c语言处理excel表格_c语言一般文件的处理过程

结果分析可知

首先数据是:%c + ‘,’ + %d + ‘\n’ …
1

字节数总共 29(0 ~ 28),可见数据一共 4 行,每行字节数是 7
第 1 行,0 ~ 6
第 2 行,7 ~ 13
第 3 行,14 ~ 20
第 4 行,21 ~ 27
第 5 行,28 是文本结尾 feof(fp)

2
%c ‘,’ %d ‘\n’ 所占字节都是 1L

字符 w , 9 , 5 , 换行符 \n
指针位置 21 22 23 24 25 26 27

3
顺序读数据
很容易忘了加上 &

fscanf(fp, "%c,%d,%d\n", &ch, &d1, &d2);

逆序读
读完一个数,跳了 1L,再向前跳 3L 才是前一个数

fscanf(fp, "%d\n", &d2);
fseek(fp, -3L, 1);//从当前位置 向着开头的方向移动3L字节
fscanf(fp, "%d\n", &d2);

4
csv 文本结尾是 另开辟一行!
当从头读 或 遍历 数据时,会遍历到最后的 “空行”,具体情况要注意代码细节的不同

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/179230.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Netron 下载链接

    Netron 下载链接https://github.com/lutzroeder/Netron

    2022年8月30日
    0
  • LSTM模型介绍

    LSTM模型介绍递归神经网络(RNN)人类不会每时每刻都开始思考。当你阅读这篇文章时,你会根据你对之前单词的理解来理解每个单词。你不会忘掉掉所有东西,然后再从头开始思考。你的想法有持久性。传统的神经网络不能做到这一点,这是一个主要的缺点。例如,假设您想要对电影视频中每个点发生的事件进行分类。目前尚传统神经网络无法利用其对电影中先前事件的推理来预测后者。循环神经网络解决了这个问题。它们是带有循环的…

    2022年9月11日
    0
  • arcgis附图制作_怎么制作图片的浮雕效果

    arcgis附图制作_怎么制作图片的浮雕效果ArcGIS制作地图时可以制作出很多很炫的效果,比如地图阴影、地图晕渲效果、浮雕效果、三维效果等等。本实验讲解在ArcGIS中制作浮雕效果地图,效果如下所示:1.加载矢量数据加载实验数据包data44.rar中的秦安县乡镇矢量数据:2.缓冲区分析点击【地理处理】下拉菜单,点击【缓冲区】。输入要素选择秦安县乡镇数据,选择输出要素路径,线性单位输入-0.4,单位为千米,侧类型选择两侧,融合类型选择ALL,点击确定。缓冲区效果:3.欧氏距离分析欧氏距离工具用于计算每个像元到最近.

    2022年9月5日
    2
  • PHP Laravel系列之环境搭建( VirtualBox+Vagrant+Homestead+系列网址)

    PHP Laravel系列之环境搭建( VirtualBox+Vagrant+Homestead+系列网址)

    2021年10月28日
    43
  • ubuntu中apt和dpkg命令总结「建议收藏」

    ubuntu中apt和dpkg命令总结「建议收藏」1.apt和dpkg命令总结apt-cachesearch#——(package搜索包)apt-cacheshow#——(package获取包的相关信息,如说明、大小、版本等)apt-getinstall#——(package安装包)apt-getinstall#—–(package–reinstall重新安装包)apt-get

    2022年5月15日
    33
  • java类加载过程详解_java三个类加载器

    java类加载过程详解_java三个类加载器朋友给我发了一道有意思的题目,如下为什么用.class的方式加载类和以Class.forName()的方式加载的结果不同呢,原因很简单,就是类加载过程的不同。这就扯到基础理解上了,就是Java是如何加载一个类的呢?上图是我绘制的整个Java类加载过程。首先是编译期,将Java源文件也就是敲好的代码通过编译,转换成.class文件,也就是字节码文件(byte),然后经过传输传…

    2022年8月11日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号