资源简介
有时需要将信息保存在Excel、Txt中,并且需要判断去重操作,重复时进行覆盖,不同时则在文件尾部写入。该程序中split为字符串分割函数,利用fseek进行重写数据的定位操作。
代码片段和文件信息
#include
#include
#include
using namespace std;
vector split(const string& s char c) // 字符串分割
{
vector str;
typedef string::size_type size_tp;
size_tp size = s.size();
size_tp i = 0 j = 0;
while (i < size)
{
while (s[i] == c)
++i;
j = i;
while (s[j] != c && j < size) ++j;
if (i != j) {
str.push_back(s.substr(i j - i));
}
i = j;
}
return str;
}
void writeExcel()
{
char buf[512] = {0};
int line_len = 0;
int len = 0;
int res;
FILE *pFile = nullptr;
pFile = fopen(“G:\\test.csv““r+“); // Excel/txt相同,只需换后缀名即可
if (!pFile)
{
pFile = fopen(“G:\\test.csv“ “w“); // 如果文件不存在,则写入文件;如果文件存在,则用r+读写模式,w会覆盖原来的内容,从开头开始写
}
char *pTemp = fgets(buf sizeof(buf) pFile);
line_len = strlen(buf);
if (pTemp == nullptr)
{
fprintf(pFile “%c%d\n“ ‘a‘ 0);
fprintf(pFile “%c%d\n“ ‘b‘ 0);
fprintf(pFile “%c%d\n“ ‘c‘ 0);
fprintf(pFile “%c%d\n“ ‘d‘ 0);
}
else
{
len = len + line_len + 1; // 加1表示回车符
while (pTemp)
{
vector vecBuf = split(buf ‘‘);
const char *first = vecBuf[0].c_str();
if (‘c‘ == *first)
{
len = len - line_len - 1 ;
res = fseek(pFile len SEEK_SET); // len 从头开始到此为止长度
printf(“%d\n“ res);
fprintf(pFile “%c%d\n“ ‘d‘ 1); // 重写一行数据
break;
}
else
{
pTemp = fgets(buf sizeof(buf) pFile);
line_len = strlen(buf) ;
len = len + line_len + 1;
}
}
if ( nullptr == pTemp )
{
fprintf(pFile “%c%d\n“ ‘s‘ 1);
}
}
/*利用ftell进行定位,注意换行符*/
/*else
{
while (pTemp)
{
vector vecBuf = split(buf ‘\t‘);
const char *first = vecBuf[0].c_str();
if (‘a‘ == *first)
{
len = ftell(pFile) - line_len - 1;
res = fseek(pFile len SEEK_SET);
printf(“%d\n“ res);
fprintf(pFile “%c\t%d\n“ ‘d‘ 1);
break;
}
else
{
pTemp = fgets(buf sizeof(buf) pFile);
line_len = strlen(buf);
len += line_len;
}
if (pTemp == nullptr)
{
fprintf(pFile “%c\t%d\n“ ‘s‘ 1);
}
}
}*/
fclose(pFile);
}
int main()
{
writeExcel();
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
..A..H. 28160 2018-08-07 21:11 Excel_Txt读写\.vs\ConsoleApplication1\v14\.suo
文件 7423 2018-08-07 20:36 Excel_Txt读写\ConsoleApplication1\ConsoleApplication1.vcxproj
文件 946 2018-06-20 10:59 Excel_Txt读写\ConsoleApplication1\ConsoleApplication1.vcxproj.filters
文件 165 2018-06-20 11:05 Excel_Txt读写\ConsoleApplication1\ConsoleApplication1.vcxproj.user
文件 1598 2018-08-07 20:37 Excel_Txt读写\ConsoleApplication1\Debug\ConsoleA.68352FAC.tlog\CL.command.1.tlog
文件 14926 2018-08-07 20:37 Excel_Txt读写\ConsoleApplication1\Debug\ConsoleA.68352FAC.tlog\CL.read.1.tlog
文件 752 2018-08-07 20:37 Excel_Txt读写\ConsoleApplication1\Debug\ConsoleA.68352FAC.tlog\CL.write.1.tlog
文件 239 2018-08-07 20:37 Excel_Txt读写\ConsoleApplication1\Debug\ConsoleA.68352FAC.tlog\ConsoleApplication1.lastbuildstate
文件 2650 2018-08-07 20:37 Excel_Txt读写\ConsoleApplication1\Debug\ConsoleA.68352FAC.tlog\li
文件 2582 2018-08-07 20:37 Excel_Txt读写\ConsoleApplication1\Debug\ConsoleA.68352FAC.tlog\li
文件 728 2018-08-07 20:37 Excel_Txt读写\ConsoleApplication1\Debug\ConsoleA.68352FAC.tlog\li
文件 283 2018-08-07 20:37 Excel_Txt读写\ConsoleApplication1\Debug\ConsoleApplication1.log
文件 270576 2018-08-07 20:37 Excel_Txt读写\ConsoleApplication1\Debug\Excel.obj
文件 268936 2018-06-20 11:18 Excel_Txt读写\ConsoleApplication1\Debug\excel.obj.enc
文件 617472 2018-08-07 20:37 Excel_Txt读写\ConsoleApplication1\Debug\vc140.idb
文件 389120 2018-08-07 20:37 Excel_Txt读写\ConsoleApplication1\Debug\vc140.pdb
文件 2353 2018-08-07 21:00 Excel_Txt读写\ConsoleApplication1\Excel.cpp
文件 1339 2018-06-20 10:20 Excel_Txt读写\ConsoleApplication1.sln
文件 19161088 2018-08-07 21:11 Excel_Txt读写\ConsoleApplication1.VC.db
文件 81920 2018-08-07 20:37 Excel_Txt读写\Debug\ConsoleApplication1.exe
文件 472028 2018-08-07 20:37 Excel_Txt读写\Debug\ConsoleApplication1.ilk
文件 4550656 2018-08-07 20:37 Excel_Txt读写\Debug\ConsoleApplication1.pdb
目录 0 2018-08-07 21:12 Excel_Txt读写\.vs\ConsoleApplication1\v14
目录 0 2018-08-07 21:12 Excel_Txt读写\ConsoleApplication1\Debug\ConsoleA.68352FAC.tlog
目录 0 2018-08-07 21:12 Excel_Txt读写\.vs\ConsoleApplication1
目录 0 2018-08-07 21:12 Excel_Txt读写\ConsoleApplication1\Debug
...D.H. 0 2018-08-07 21:12 Excel_Txt读写\.vs
目录 0 2018-08-07 21:12 Excel_Txt读写\ConsoleApplication1
目录 0 2018-08-07 21:12 Excel_Txt读写\Debug
目录 0 2018-08-07 21:12 Excel_Txt读写
............此处省略3个文件信息
- 上一篇:FIR302B编程器固件
- 下一篇:云南省一级B类考试模拟系统解压密码:ssl163
相关资源
- STM32F103C8 2路PWM捕捉 2路串口输出
- 通过STM32F407对BH1750光照度传感器采集
- C程序设计语言_第二版新版习题解答
- 无线龙CC1110试验例程
- perl2exe 破解版,可编译生成exe文件
- 湖南师范大学966考研
- STM32读取MPU6050官方DMP库
- DWG,DXF文件读写
- 校园导航系统课程设计
- 数据结构课程设计--学生成绩管理系统
- linux下的聊天室
- AT25SF081驱动
- 图书管理系统简单的“文件”实现数
- 小区电动车充电桩设备.zip
- [netMarketing类库] CSVHelper 类的使用
- keil下51单片机程序的烧写过程
- 2017年电子设计大赛专科组简易水清检
- 编程珠玑中文版及源码
- MISRA C 2012 Specifications,MISRA C 2012 协议
- 基于linux在线电子词典
- 32F103测频
- 基于单片机的室内空气净化系统
- C程序设计语言 第二版新 PDf (绝对超
- 基于Linux的设备分配及磁盘调度
- 基于Linux系统的航班信息与订票系统
- C安全编码标准中文版
- 动态称重,四节称 源码,
- C程序设计第四版.谭浩强(带详细书签
- [BUPT]计算导论OJ上机题参考源代码 +
- STM32F103+四个VL53L0代码2020新.zip
评论
共有 条评论