C語言練習-文件讀寫
要求:
假設一個文本文件中保存着100個整數,請將這100個整數按從小到大的順序寫到另一個文本文件中去,並且在新文件中每10個整數佔一行。源文件名和目標文件名通過命令行參數獲取。
分析: 主要包括三個任務
1.讀取源文件中的所有數並臨時存在數組中
2.使用排序算法進行排序(本題選用冒泡排序)
3.將排序後的寫到文件中去
代碼:
#include<stdio.h>
#include<stdlib.h>
#define size 100
main(int argc,char* argv[])
{
int a[size];
FILE *fin ,*fout;
if(argc!=3)
{
printf("You input an invalid file name\n");
}
fin=fopen(argv[1],"r+");
fout=fopen(argv[2],"w");
for(int i=0;i<size;i++)
{
fscanf(fin,"%d",&a[i]);
}
for(int i=0;i<size-1;i++)
{
for(int j=0;j<size-1-i;j++)
{
if(a[j]>a[j+1])
{
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(int i=1;i<=size;i++)
{
fprintf(fout,"%d\t",a[i-1]);
if(i%10==0)
{
fputc('\n',fout);
}
}
fclose(fin);
fclose(fout);
}