C语言python读取文件排序TXT文件内容并排序! 急! 在线等!

C语言从TXT文件中读写数据
下面是一个简单文件读取测试程序,首先是写数据,将数字0~9写入到data.txt文件中,然后再从data.txt中读取数据,将读到的数据存到数组a[10]中,并且打印到控制台上。
下面是程序:
#include &stdio.h&
int main()
//下面是写数据,将数字0~9写入到data.txt文件中
FILE *fpWrite=fopen("data.txt","w");
if(fpWrite==NULL)
for(int i=0;i&10;i++)
fprintf(fpWrite,"%d ",i);
fclose(fpWrite);
//下面是读数据,将读到的数据存到数组a[10]中,并且打印到控制台上
int a[10]={0};
FILE *fpRead=fopen("data.txt","r");
if(fpRead==NULL)
for(int i=0;i&10;i++)
fscanf(fpRead,"%d ",&a[i]);
printf("%d ",a[i]);
getchar();//等待
下面是写入到txt后的截图:
下面是读取文件后打印数据到控制台的截图
没有更多推荐了,
不良信息举报
举报内容:
C语言从TXT文件中读写数据
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!C语言中怎样读取文件数据并对数据排序再重新写入文件_百度知道
C语言中怎样读取文件数据并对数据排序再重新写入文件
我有更好的答案
我来回答吧:首先是两个输入文件:一个文本文件:scoret.txt一个二进制文件:scoreb.txt文本文件scoret.txt我们可以直接编辑(按要求编辑五个学生的姓名和成绩),而二进制文件不易编辑。我们先写一个代码,实再将scoret.txt文件转成二进制文件scoreb.txt#include &stdio.h&#include &conio.h&#include &stdlib.h&struct stu {
采纳率:78%
来自团队:
#include &stdio.h&#include &stdlib.h&/**C语言中怎样读取文件数据并对数据排序再重新写入文件*/int main(){FILE *fp,*
//创建文件指针fp和fpnint a[10],b[10],i,j,
//a数组用来存入数据
b数组用来接受文件数据进行重新排序输出for(i = 0; i & 10; i++){a[i] =
//初始化赋值}if((fp = fopen(&data.dat&,&wb&)) == NULL)
//以只写的方式打开一个二进制文件,没有则自行建立,有的话就进行覆盖{printf(&Error!\n&);exit(1);}fwrite(a,sizeof(a),1,fp);
//进行一次写入,写入sizeof大小,将a写入到fp所指向的文件中fclose(fp);
//写完之后关闭文件指针if((fpn = fopen(&data.dat&,&rb&)) == NULL)
//以只读的方式打开一个二进制文件{printf(&Error!\n&);exit(1);}for(i = 0; i & 10; i++){fread(&b[i],sizeof(int),1,fpn);
//用循环进行读取,每次读取int大小,从fpn所指向的文件读取,存入b数组中}fclose(fpn);
//关闭文件指针for(i = 0; i & 9; i++)
//冒泡排序{for(j = 0; j & 10 - i - 1; j++){if(b[j] & b[j + 1]){temp = b[j];b[j] = b[j+1];b[j+1] =}}}for(i = 0; i & 10; i++)
//输出{printf(&%d\t&,b[i]);}return 0;}很久没写了,有很多不足,希望见谅!
c语言读文件 写文件的例子 我能做
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。我现在想读取一个文件里面的字符串,并把它进行排序输出(C语言的)_百度知道
我现在想读取一个文件里面的字符串,并把它进行排序输出(C语言的)
在linux中,我现在已经读取了一个文件,并以字符串形式打印到终端了。但是我想把文件里面的字符串用for循环分解出来,变成数字,然后把它存到一个数组里面,并进行排序,再输出
这是我现在写的代码:
#include &stdio.h&
#define F_PATH &/home/lgz/326_1....
我有更好的答案
可以直接按照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, fp=fopen(F_PATH,&r&);& if(NULL&==&fp)&
return&-1; while(fscanf(fp,&%d&,&a[i++])!=EOF) {
if(i&=100)
&//防止数组越界,最多读取100个数字,同时记录个数
} } fclose(fp); //fp=NULL;&&不需要置空,已经不用了
//数组排序功能,冒泡排序 for(j=0;j&i;j++) {
for(k=j+1;k&i;k++)
if(a[j]&a[k])
a[j]=a[k];
//最后循环输出 for(j=0;j&i;j++)
printf(&%d&&,&a[j]); return&0;}
采纳率:84%
来自团队:
你可以用%d来直接读取数字,没必要先当字符串再转换
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。欢迎加入我们,一同切磋技术 &
用户名: &&&
密 码: &
共有 3415 人关注过本帖
标题:c语言读取.txt中文文件并且显示在屏幕上的问题
等 级:新手上路
帖 子:34
结帖率:75%
&&已结贴√
&&问题点数:10&&回复次数:3&&&
c语言读取.txt中文文件并且显示在屏幕上的问题
#include&stdio.h&
#include&stdlib.h&
#include&locale.h&
int main(void)
&&& FILE *
&&& if((fp=fopen(&I:\\xuexi.txt&,&r&))==NULL)
&&& printf(&file is not be opened:\n&);
&&& exit(1);
&&& while((ch=fgetc(fp))!=EOF)
&&& fputc(ch,stdout);
&&& printf(&\n&) ;
&&& fclose(fp) ;
} 用以上代码显示我电脑上的文件xuexi.txt文件。如果文件内容是英文的那没问题。但是如果是中文的那么就无法显示
百度了几天都是讲解UNICODE云云高的我头都大了。我知道用一个字节的ASCII码显示中文肯定不行但是调用了#include&locale.h&
头文件后也不行啊。
搜索更多相关主题的帖子:
&&&&&&&&&&
等 级:新手上路
帖 子:34
????貌似我弄错了文件
但是我之前的文件的确存储了习近平的讲座啊!!现在居然什么也没有了成了一个空文件
难道进行了几次文件读取操作后全部删除了吗?》
今天我另外打开了其他的文件居然成功了?????????????、不理解了我原先的文件
被删除了现在居然又可以了??
请大师指点啊
[此贴子已经被作者于 22:03编辑过]
等 级:黑侠
帖 子:107
专家分:534
记事本程序可以识别ansi、unicode、utf-8格式的文本,你的程序只能显示ansi格式的汉字,很显然你后来打开的是ansi格式,能正确显示不奇怪。
等 级:贵宾
威 望:304
帖 子:25793
专家分:48814
跟文件本身編碼和你程序的運行環境都有關係。
授人以渔,不授人以鱼。
版权所有,并保留所有权利。
Powered by , Processed in 0.097969 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights ReservedC语言读取TXT文件内容并排序! 急! 在线等!_百度知道
C语言读取TXT文件内容并排序! 急! 在线等!
我有更好的答案
#include&&stdio.h&#include&&stdlib.h&//假设要打开的文件内容全是整数(如果是浮点数参照修改)&//数据与数据之间用空格分开&//每行多少数据可以不相同&//数组从小到大排序void&sortit(int&*a,int&n)&{ int&i,j,m; for(i=0;i&n-1;i++) for(j=i+1;j&n;j++)
if(a[i]&a[j]){
m=a[i];a[i]=a[j];a[j]=m;
}}//输出数组元素void&printit(int&*a,int&n){ int&i; for(i=0;i&n;i++){
printf(&%5d&,a[i]);
if&(i%10==9)&printf(&\n&);&&&//设置每10个换行& }}&//从文件fp中读取n个数据到avoid&getdata(FILE&*fp,int&*a,int&n){ int&i; fseek(fp,0,0); for(i=0;i&n;i++)
fscanf(fp,&%d&,&a[i]);}//获取文件中整数数椐的个数 int&getdatabound(FILE&*fp){ int&i=0,n; fseek(fp,0,0); while(fscanf(fp,&%d&,&n)!=EOF)&i++; return&i;}int&main(){ int&n,*a; char&*myfile=&d:\\data.txt&; FILE&* if&((fp=fopen(myfile,&r&))==NULL){
printf(&打开文件%s失败\n&,myfile);
return&0; } n=getdatabound(fp);&&&&//获取该文件中有多少整数& printf(&该文件共有%d个整数\n&,n); a=(int&*)malloc(sizeof(int)*n);&&//分配n个整数的空间 getdata(fp,a,n);&&&&//从文件fp中读取n个数据到a& fclose(fp);
printf(&排序前的数组\n&); printit(a,n);&&&&&//输出数组的值& printf(&\n&);
sortit(a,n);
printf(&排序后的数组\n&); printit(a,n); printf(&\n&);}
采纳率:80%
来自团队:
给你写了一个,累死了,给我加分啊~~程序运行完之后txt中的内容会变成三段,如果想要再运行一遍,需要将txt内容还原成最初的,否则会出错。#include &stdio.h&#include &string.h&typedef struct{ char nation[128];}void main(){ medal table[20]; char buf[256]; char title[256]; FILE * int table_len = 0,i,j;
fp = fopen(&text.txt&,&r+&); if(fp == NULL) {
printf(&read error!\n&); } fgets(title,256,fp); fputs(title,stdout); while(fgets(buf, 256, fp) != NULL) {
sscanf(buf, &%[^1-9]%d%d%d%d&,table[table_len].nation,&table[table_len].gold, &table[table_len].silver, \
&table[table_len].bronze,&table[table_len].sum);
printf(&%s%-6d%-8d%-8d%d\n&,table[table_len].nation,table[table_len].gold,table[table_len].silver, \
table[table_len].bronze,table[table_len].sum);
table_len++; }
printf(&\nOrder by country name:\n&); fprintf(fp, &\nOrder by country name:\n&); fputs(title,stdout); fputs(title,fp); for(j=0; j&(table_len-1); j++) {
for(i=0; i&(table_len-1-j);i++)
if(strcmp(table[i].nation, table[i+1].nation) & 0)
tmp = table[i];
table[i] = table[i+1];
table[i+1] =
} } for(i=0;i&table_i++) {
printf(&%s%-6d%-8d%-8d%d\n&,table[i].nation,table[i].gold,table[i].silver, \
table[i].bronze,table[i].sum);
fprintf(fp,&%s%-6d%-8d%-8d%d\n&,table[i].nation,table[i].gold,table[i].silver, \
table[i].bronze,table[i].sum);
printf(&\nOrder by number of medals:\n&);
fprintf(fp, &\nOrder by number of medals:\n&);
fputs(title,stdout);
fputs(title,fp);
for(j=0; j&(table_len-1); j++) {
for(i=0; i&(table_len-1-j);i++)
if(table[i].sum & table[i+1].sum)
tmp = table[i];
table[i] = table[i+1];
table[i+1] =
for(i=0;i&table_i++) {
printf(&%s%-6d%-8d%-8d%d\n&,table[i].nation,table[i].gold,table[i].silver, \
table[i].bronze,table[i].sum);
fprintf(fp,&%s%-6d%-8d%-8d%d\n&,table[i].nation,table[i].gold,table[i].silver, \
table[i].bronze,table[i].sum);
fclose(fp);}
本回答被提问者采纳
下面是可以实现1的代码。#include &stdio.h&#include &string.h&#include &stdlib.h&char buf[439];int read_txt( FILE *name );main(){ FILE * file = fopen ( &C:\\Users\\yyy\\Desktop\\111.txt&, &r& ); res = read_txt( file ); if (res == 0)
printf(&sucessful !\n&); else
printf(&error !\n&);
system( &pause& ); return 0;}int read_txt( FILE *name ){
if ( name != NULL )
fread(buf, 1024, 1, name); printf(&%s\n&, buf); return 0;}
其他1条回答
为您推荐:
其他类似问题
您可能关注的内容
txt文件的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 无法读取源文件或磁盘 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信