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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python正则匹配数字和小数

    Python正则匹配数字和小数正则匹配数字,\为转义字符,d+为匹配一次或多次如下所示:返回的结果为列表  2.正则匹配小数如下所示,返回的结果125.6为字符串 

    2022年6月17日
    38
  • 搜集对编程有帮助的论坛以及个人空间信息_猿编程怎么样

    搜集对编程有帮助的论坛以及个人空间信息_猿编程怎么样(持续更新中)论坛:编程论坛——中国最大的编程者社区:http://bbs.bc-cn.net/编程论坛-编程爱好者学习的净土,程序员交流的园地:http://www.programbbs.com/豆瓣小组:java小组http://www.douban.com/group/java/大富翁论坛:http://w

    2022年9月1日
    1
  • oracle11.2 异常关闭机器引起,ora-01172,ora-01152错误处理

    oracle11.2 异常关闭机器引起,ora-01172,ora-01152错误处理

    2021年8月28日
    69
  • Python玩转emoji表情 一行代码的事儿!

    Python玩转emoji表情 一行代码的事儿!Python可以实现emoji表情一行代码的事儿!有时候在代码中加入一些有趣的操作可以使得友好度UP好几个LEVEL,正好了解到Python支持emoji表情的输出,实现方式相当简单。

    2022年4月28日
    49
  • 适配器的作用[通俗易懂]

    适配器的作用[通俗易懂]首先我们从一般的概念上讨论一下计算机是怎样连接到局域网上的。计算机与外界局域网的连接是通过通信适配器(adapter)。适配器本来是在主机箱内插入的一块网络接口板(或者是在笔记本电脑中插入一块PCMCIA卡)。这种接口板又称为网络接口NIC(NetworkInterfaceCard)或简称为“网卡”。由于较新的计算机主板上已经嵌入了这种适配器,不使用单独的网卡了,因此…

    2022年6月12日
    33
  • MinGW安装和使用「建议收藏」

    MinGW安装和使用「建议收藏」MinGW全称MinimalistGNUForWindows,是个精简的Windows平台C/C++、ADA及Fortran编译器,相比Cygwin而言,体积要小很多,使用较为方便。MinGW提供了一套完整的开源编译工具集,以适合Windows平台应用开发,且不依赖任何第三方C运行时库。MinGW包括:一套集成编译器,包括C、C++、ADA语言和Fortran语言编译器用于生

    2022年6月17日
    29

发表回复

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

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