你是想求编程的哦,这么点分,没人会给你打字的。。。
可以给你个练习程序,自己改吧。。。
(已知磁盘上的文件test2-2.txt文本文件中包含有3个字符串,
每个串的长度小于80且3个串之间以换行符做分隔。编写的程序应实现:
(1)从文件中读入3个串,并将它们按升序排序。
(2)将排序后的3个串输出到屏幕,并追加输出到原来文件的尾部。
)
#include
void main()
{
FILE *fp;
int i,j;
char str[3][80],temp[80];
fp=fopen("test2-2.txt","r+");
if(fp==NULL)
{
printf("file open error!\n");
exit(0);
}
for(i=0;i<3;i++)
fgets(str[i],80,fp);
printf("before sorting:\n");
for(i=0;i<3;i++)
puts(str[i]);
for(i=0;i<=3-1;i++)
for(j=0;j<3-1-i;j++)
if(strcmp(str[j],str[j+1])>0)
{
strcpy(temp,str[j]);
strcpy(str[j],str[j+1]);
strcpy(str[j+1],temp);
}
printf("after sorting:\n");
for(i=0;i<3;i++)
puts(str[i]);
fseek(fp,0L,SEEK_END);
fputs("\n",fp);
for(i=0;i<3;i++)
fputs(str[i],fp);
fclose(fp);
}
1.用fgets函数可以读取文件中某行的数据,某列数据就必须一个一个读入每行的第几个字符,再存入到一个字符串当中。
2.例程:
#include
#include
void main()
{
char a[100],b[100],c[100];
int i=3,j=4,k=0; //第三行,第四列
FILE *fp = fopen("data.txt","r");
while(fgets(c,100,fp)){ //读入每行数据
i--;
if(i==0) strcpy(a,c); //读到第三行数据
b[k++]=c[j-1]; //把每行的那列字符拷到b中
}
b[k]=0;
printf("第%d行数据:%s\n",i,a);
printf("第%d列数据:%s\n",j,b);
fclose(fp);
}
#include
void main()
{
int n;
FILE *fp = fopen("data.txt","rt");
fscanf(fp,"%d", &n );
/* 把数据放到数组中 */
fclose(fp);
}
可以告诉我你是怎么打开的吗?非常感谢