c语言从文件中读取数据,对数据进行冒泡,选择,插入三种排序

首先要使用c语言必须要有特定的语言来打开文本文件
“r”:只能从文件中读数据,该文件必须先存在,否则打开失败
“w”:只能向文件写数据,若指定的文件不存在则创建它,如果存在则先删除它再重建一个新文件
“a”:向文件增加新数据(不删除原有数据),若文件不存在则打开失败,打开时位置指针移到文件末尾
“r+”:可读/写数据,该文件必须先存在,否则打开失败
“w+”:可读/写数据,用该模式打开新建一个文件,先向该文件写数据,然后可读取该文件中的数据
“a+”:可读/写数据,原来的文件不被删去,位置指针移到文件末尾

要想对数据进行排序要先将数据录入一个数组中,再对数组处理就很简单了。这里主要的难度就在于如何将文本中的数据取出
#include
#define N 10
#define K 10
void Write(double test[]);
void Read(int i,int a[]);
int main()
{
double test[K];int a[N],i;
Write(test);
Read(i,a);
}
void Write(double test[])
{
int x=6;
FILE *fp;
int i;
if((fp=fopen(“test.txt”,“w”))==NULL)
{
printf(“文件打开失败”);
}
fprintf(fp,"12 52 71 62 65 65 17 19 ",x);
fclose(fp);

}
void Read(int i,int a[])
{
int j;
FILE *fp;
if((fp=fopen(“test.txt”,“r”))==NULL)
{
printf(“文件打开失败”);
return -1;
}
while(1)
{
fscanf(fp,"%d",&a);
if(feof(fp))
break;
printf("%4d",a);
}
fclose(fp);
}

这是具体的代码要排序只需将最后打印部分改为排序所用的程序即可。
在编写过程中遇到的最多的问题就是:程序编译没有问题,但是结束显示确是“文件打开失败”
我无法直接读取文件,所以我通过先使用c语言对文档进行编译数据,在对文本文件提取数据结果是可以的,可能是我之前编写的读取程序有问题,后来进行了修改。所以现在只将上面程序的读取部分也可以完成。
虽然通过键盘直接输入数据对于排序来说十分简单,通过文件txt似乎多此一举,但实际上在对于一些复杂的数据时,通过键盘输入显然是不合适的,所以说学会熟练的使用c语言文件还是十分重要的

你可能感兴趣的:(c语言)