用帝国软件做网站的心得,苏州网网站建设,网站建设技术分享,服务器主机搭建网站简单分享-获取.txt文件内数据 文件内数据逗号分隔 分隔符 C语言 数据存储到文件中#xff0c;把文件数据读取到数组#xff0c;方便数据处理。 # include stdio.h
# include stdlib.h
# include string.h#define DATANUM 307200 //数组个数
int ma… 简单分享-获取.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,t0;if (file NULL) {perror(无法打开文件);return EXIT_FAILURE;}char buffer[100000]; //获取文件字符串 while (fgets(buffer, sizeof(buffer), file)) {int k0;long recodestart0;
/*
当调用strtok()时它会查找输入字符串中第一个出现的分隔符并将其替换为\0空字符从而结束当前标记。
每次成功调用后strtok()返回指向被分割出的子字符串的指针。如果没有更多可提取的子字符串则返回NULL。
第一次调用时提供待分解的字符串。
*/ char *token strtok(buffer, ,); //如果文件分隔符是空格把“”换成“ ”就好while ( index DATANUM) { //token ! NULL if(token ! NULL) // {if(t1){t0;indexindex-1; //如果buffer取字符串刚好取到数据的一半则存储的数组需要抛弃上一个数据 例如数据65535buffer最后只取到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]);//用于调试可屏蔽 }t1; //如果buffer取字符串刚好取到数据的一半则存储的数组需要抛弃上一个数据 例如数据65535buffer最后只取到65数组就会保存65。这个数组就是异常的需要去掉。 }elsek0;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, ,); //提供待分解的字符串 k0;}}// 可以在这里对array进行进一步处理例如打印或计算等}fclose(file);
///
//将采集的数组打印出来用文件对比工具对比数组是否正确
//以下代码用于调试可屏蔽
/// int i0;FILE *destFile fopen(data2.txt, w); //创建.ini文件 if (destFile NULL) {perror(Error opening destination file); //创建文件失败提示 return EXIT_FAILURE;}for(i0;iDATANUM;i){fprintf(destFile, %d,,array[i]); }fclose(destFile); //关 printf(complete\n); return EXIT_SUCCESS;
}运行结果 文件对比结果