C语言(从文件中读取数据并进行字符拆分) |
您所在的位置:网站首页 › c语言怎样从文件中读取数组 › C语言(从文件中读取数据并进行字符拆分) |
从文件中读取数据并进行字符拆分 应用到文件读取,数组比较(冒泡),指针、子函数、字符串等知识 #include #include #include #define SIZE 200 int openfile(char *original);//声明一个函数 void getdata(char *original,int *nowdata); //字符分割函数声明 int count(char *original); void sortdata(int *nowdata,int n); void writefile(int *nowdata,int n); int main() { char str[SIZE]; int nowdata[SIZE]; openfile(str); // 打开文件并进行原始文件数据的读取 getdata(str,nowdata); // 字符分割函数引用 int n=0; n=count(str); printf("\n去掉逗号后初始文本数据个数:%d\n",n); int *p; p=nowdata; sortdata(p,n); writefile(nowdata,n); return 0;} // 打开原始文件,并判断是否成功,打开若成功,则输入到数组中,并记录下有多少个数 int openfile(char *original) { FILE *DataFrom; // 定义一个文件指针 char OriginalFileName[64]; // 定义一个数组名,用于文件名的读取,最长64位 char ch; // 接收数据 int count=0; // 用于统计文本中数据的个数(‘,’+1个) int i=0; // 打开文件&&判断是否打开成功 if((DataFrom=fopen(“OriginalFileName.txt”,“r”))==NULL) { printf(“fail open OriginalFileName!\n”); exit(0); } printf("初始文本文件如下:"); while(!feof(DataFrom)) { ch=fgetc(DataFrom); if(ch==',') count++; *(original+i)=ch; i++; putchar(ch); } printf("\n初始文本中数据的个数:%d\n",count+1); printf("\n"); //fclose(OriginalFileName); return count+1; }int count(char *original) { FILE *DataFrom; // 定义一个文件指针 char OriginalFileName[64]; // 定义一个数组名,用于文件名的读取,最长64位 char ch; // 接收数据 int count=0; // 用于统计文本中数据的个数(‘,’+1个) int i=0; // 打开文件&&判断是否打开成功 if((DataFrom=fopen(“OriginalFileName.txt”,“r”))==NULL) { printf(“fail open OriginalFileName!\n”); exit(0); } //printf("初始文本文件如下:"); while(!feof(DataFrom)) { ch=fgetc(DataFrom); if(ch==',') count++; i++; } return count+1; }void getdata(char *original,int nowdata) // 字符分割函数使用 { char token = strtok(original, “,”); int j=0; printf(“分割以后的字符如下:\n”); while( token!= NULL ) { nowdata[j] = atoi(token); token = strtok(NULL, “,”); printf("%d\t",nowdata[j]); j++; }} void sortdata(int x[],int n) { int i,j,k; int temp; for(i=0;i FILE *DataTo; // 定义一个文件指针 char AfterFileName[64]; // 定义一个数组名,用于文件名的读取,最长64位 // 打开文件&&判断是否打开成功 if((DataTo=fopen(“AfterFileName.txt”,“wb”))==NULL) { printf(“fail open OriginalFileName!\n”); exit(0); } fwrite(nowdata,4, n,DataTo); fclose(DataTo);} |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |