如题,需要将文件里的一组整数,排序后写到另外一个文件中。
思路:
一次读取一个sizeof(int),然后往一个int*数组里写入,写入的时候就比较,进行排序。
然后,在遍历数组,写到文件中。
实现代码如下:
#define READ_FILE "C:\\tempR.txt"#define WRITE_FILE "C:\\tempW.txt"/*按降序排列数组*/int InsertData(int* a, int nValue, int nCount){ for (int i=0; ii; j--) { a[j]=a[j-1]; } a[i]=nValue; break;//跳出循环 } } return 0;}/*写数据到文件*/int WriteData(int* a, char* pFile,int nCount){ FILE* fpWrite=NULL; fpWrite = fopen(pFile, "wb+"); if (fpWrite!=NULL) { for (int i=0; i 0) { nCount++; InsertData(a50, nTemp, nCount); nSize = fread((void*)&nTemp, sizeof(int), 1, fpRead); } fclose(fpRead); } WriteData(a50, WRITE_FILE, nCount); delete a50; a50 = NULL; return 0;}
int main(){/*//可以执行这个先进行写测试数据到文件 int* a=new int[10]; for (int i=0; i<10; i++) { *(a+i)=i; } WriteData(a, READ_FILE, 10); delete a; a = NULL;*/ ProcessData(); return 0;}测试结果,就不贴了,有兴趣的朋友可以用代码测试测试,文件是按二进制写的,用UE或其他可以查看二进制的工具打开。
在这个过程遇到R6030 CRT not initialized的问题,才改变算法,先读取文件大小,计算整型数个数。关于为什么会出现R6030 CRT not initialized另外写一篇。
转载请注明原创链接: