我现在想读取一个文件里面的字符串,并把它进行排序输出(C语言的)
在linux中,我现在已经读取了一个文件,并以字符串形式打印到终端了。但是我想把文件里面的字符串用for循环分解出来,变成数字,然后把它存到一个数组里面,并进行排序,再输...
在linux中,我现在已经读取了一个文件,并以字符串形式打印到终端了。但是我想把文件里面的字符串用for循环分解出来,变成数字,然后把它存到一个数组里面,并进行排序,再输出
这是我现在写的代码:
#include <stdio.h>
#define F_PATH "/home/lgz/326_1.txt"
char c;
int main( )
{
FILE *fp=NULL;//
fp=fopen(F_PATH,"r");
if(NULL == fp) return -1;
while(fscanf(fp,"%c",&c)!=EOF) printf("%c",c);
fclose(fp);
fp=NULL;
return 0;
}
这是326_1.txt文件里面的内容
13
35
351
2351
1
0
55
66
78
23
58
190
567
987 展开
这是我现在写的代码:
#include <stdio.h>
#define F_PATH "/home/lgz/326_1.txt"
char c;
int main( )
{
FILE *fp=NULL;//
fp=fopen(F_PATH,"r");
if(NULL == fp) return -1;
while(fscanf(fp,"%c",&c)!=EOF) printf("%c",c);
fclose(fp);
fp=NULL;
return 0;
}
这是326_1.txt文件里面的内容
13
35
351
2351
1
0
55
66
78
23
58
190
567
987 展开
展开全部
可以直接按照int类型的数据,进行读入和输出,不需要按照char类型一个字符一个字符的读入。按照int类型读取,会自动跳过空白分隔符(回车,空格,TAB)等。
#include <stdio.h>
#define F_PATH "/home/lgz/326_1.txt"
//char c; 不需要全局变量
int main( )
{
FILE *fp=NULL;//
int a[100];
int i=0;
int j,k,tmp;
fp=fopen(F_PATH,"r");
if(NULL == fp)
return -1;
while(fscanf(fp,"%d",&a[i++])!=EOF)
{
if(i>=100)
{
break; //防止数组越界,最多读取100个数字,同时记录个数
}
}
fclose(fp);
//fp=NULL; 不需要置空,已经不用了
//数组排序功能,冒泡排序
for(j=0;j<i;j++)
{
for(k=j+1;k<i;k++)
{
if(a[j]>a[k])
{
tmp=a[j];
a[j]=a[k];
a[j]=tmp;
}
}
}
//最后循环输出
for(j=0;j<i;j++)
printf("%d ", a[j]);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询