C语言如何写入文本文件

这是按照学号排序并写入二进制文件,那怎么排序并且写出文本文件并且读出这些信息呢?结构体定义中有structStudent{intnum;/*学号*/charname[10... 这是按照学号排序并写入二进制文件,那怎么排序并且写出文本文件 并且读出这些信息呢?结构体定义中 有
struct Student
{
int num; /*学号*/
char name[10]; /*姓名*/
int grades[M]; /*共有M们功课*/
int total; /*总分*/
int rank; /*排名*/
char sex[4]; /*性别*/
}Stu[N];
void Selection_num(struct Student *st,int n)
{
FILE *fp;
int i,j,min,z;
struct Student temp;
for(i=0;i<n-1;i++)
{
min=i;
for(j=i+1;j<n;j++)
{
if(st[j].num<st[min].num)
min=j;
}
if(min!=i)
{
temp=st[i];
st[i]=st[min];
st[min]=temp;
}
}
if((fp=fopen("stu_info.dat","w+"))==NULL)
{
printf("can not open file! ");
exit (0);
}
for(z=0;z<n;z++)
{
if(fwrite(&st[z],sizeof(struct Student),1,fp)!=1)
printf("File write error\n");
}
}
展开
 我来答
很多游戏
高粉答主

2019-10-29 · 游戏精通者,攻略技能点满
很多游戏
采纳数:91 获赞数:387009

向TA提问 私信TA
展开全部

1、首先输入下方的代码

#include <stdio.h>  

int main()  

{  

    //下面是写数据,将数字0~9写入到data.txt文件中  

    FILE *fpWrite=fopen("data.txt","w");  

    if(fpWrite==NULL)  

    {  

        return 0;  

    }  

    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)  

    {  

        return 0;  

    }  

    for(int i=0;i<10;i++)  

    {  

        fscanf(fpRead,"%d ",&a[i]);  

        printf("%d ",a[i]);  

    }  

    getchar();//等待  

  

    return 1;  

}  

2、面是写入到txt后的截图:

3、下面是读取文件后打印数据到控制台的截图。

吉祥二进制
高粉答主

推荐于2017-10-04 · 科技改变生活,生活改变科技。
吉祥二进制
采纳数:33926 获赞数:84582

向TA提问 私信TA
展开全部

  使用c语言标准文件I/O库中的函数即可。具体来说:

  1、fopen()打开文件。

  2、fseek()调整文件位置。

  3、fwrite()写入数据。

  4、fclose()关闭打开的文件。示例如下,打开1.txt,并向文件后面添加hello world的字符串。

#include <stdio.h>
#include <string.h>
int main()
{
FILE *fp = fopen("1.txt", "a+");
if (fp==0) { printf("can't open file\n"); return 0;}
fseek(fp, 0, SEEK_END);
char sz_add[] = "hello world\n";
fwrite(sz_add, strlen(sz_add), 1, fp);
fclose(fp);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-12-27
展开全部
如果打算用fwrite()/fread()读写文件,在打开文件时应该用b模式,即:

if((fp=fopen("stu_info.dat","wb+"))==NULL)
更多追问追答
追问
什么意思?
追答
意思是用它替换原程序中的对应语句后重试。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿亮巴洛克
2011-12-27 · TA获得超过120个赞
知道答主
回答量:186
采纳率:0%
帮助的人:46.7万
展开全部
用File......只能给你这点提示,,自己好好的想想,把书好好的看看.我想你会做的
追问
晕死
你等于白说
谁不知道用FILE啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式