C语言如何写入文本文件

这是按照学号排序并写入二进制文件,那怎么排序并且写出文本文件 并且读出这些信息呢?结构体定义中 有
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");
}
}

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、下面是读取文件后打印数据到控制台的截图。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-04

  使用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;
}

第2个回答  2011-12-27
如果打算用fwrite()/fread()读写文件,在打开文件时应该用b模式,即:

if((fp=fopen("stu_info.dat","wb+"))==NULL)追问

什么意思?

追答

意思是用它替换原程序中的对应语句后重试。

追问

你好
我那个是写入二进制文件的
我现在要写入一个文本文件
但是不知道怎么写
结构体怎么写呢?
谢谢你

追答

如果要写文本文件,应该用fprintf()/fputs()/fputc()等函数,以你的目的,应该用fprintf()函数,它的用法和printf()函数是相似的,只不过多了一个用于指定写入文件的FILE *指针参数,示例如下:

fprintf(fp,"%d\t%s\n",st[0].num,st[0].name);

如果用这里提到的这些函数,那么打开文件的模式不用加b

追问

能给我写下么?
我看书了好久
还是没懂啊
纠结呢
呵呵
你给我写一个看下
就写输入学号的
其他的我模仿就好了
谢谢哈

追答

原程序的其余部分不用改变,把最后的循环改为类似如下形式即可。
for(z=0;z<n;z++)
{
fprintf(fp,"%d\t%s\n",st[0].num,st[0].name);//用学号和姓名示例,可以自行添加其它成员
}

追问

是fprintf?不是fscanf么?

追答

正如printf()是输出而scanf()是读取一样,fprintf()是向文件输出格式化文本的,而fscanf()是从文件读取数据的。

本回答被提问者采纳
第3个回答  2011-12-27
用File......只能给你这点提示,,自己好好的想想,把书好好的看看.我想你会做的追问

晕死
你等于白说
谁不知道用FILE啊

C语言如何写入文本文件
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);\/\/下面是读数据,将读到的数据...

C语言如何将字符串写入文本文件?
从键盘输入一行字符,写入一个文件, 再把该文件内容读出显示在屏幕上。\\x0d\\x0a#include\\x0d\\x0amain()\\x0d\\x0a{\\x0d\\x0aFILE *fp;\\x0d\\x0achar ch;\\x0d\\x0aif((fp=fopen("string","wt+"))==NULL)\\x0d\\x0a{\\x0d\\x0aprintf("Cannot open file strike any key e...

怎么把c语言编的程序的结果输入到一个文本文件中?
c语言编的程序的结果输入到一个文本文件中可以使用fprintf;例:include<stdio.h> main(){ FILE *fpt;fpt = fopen("wendangming.txt","w");\/\/打开文档,写入 fprintf(fpt,"Hello world");fclose(fpt);}

C语言怎么将输入函数体的文字写到文本文件里面
主要通过fprintf格式化输出函数实现,测试代码如下,\/\/程序功能,将输入的字符串写入文件中 include <stdio.h> include <stdlib.h> int main(){ FILE *fp=NULL;char str[100];\/\/字符串数组,假定最大输入99个字符 fp=fopen("test.txt","w");\/\/当前路径打开test文件,不存在则创建 if(!fp){ ...

c语言写入文件方法
1 在代码中引用stdio.h,即 include <stdio.h> C语言的所有文件操作接口,均声明在这个头文件中。2 定义FILE *类型的变量。3 打开文件,使用函数为fopen。格式为:FILE *fopen(char *filename, char *mode);参数filename为要写入的文件名,mode为打开的方式,如果仅需写入文件,可以使用"w"或 "...

C 语言对文件操作
首先,使用fopen函数以写入模式("w")打开一个名为test.txt的文件。之后,通过fprintf函数向该文件写入两行文本。完成写入后,使用fclose函数关闭文件。接着,重新打开同一个文件,但这次是以读取模式("r")打开。随后,使用fgets函数从文件中读取文本,并通过printf函数将其输出到控制台。最后,再次使用...

C语言怎么把字符串用fprintf写入文本文件?
把把字符串写入文件,基本示例如下:FILE *fp;char s[]= "hello world!";char c = '\\n';fp = fopen("file.txt","a");fprintf(fp,"%s",s); \/\/字符串使用%s fprintf(fp,"%c",c); \/\/字符使用%cfclose(fp);从文件读取到字符串char s1[30];fp=fopen("file.txt...

c语言的文件操作
在进行文件操作之前,需要先打开文件。C语言中提供了多种打开文件的函数,如`fopen`等。这些函数会返回一个文件指针,如果打开文件失败,则返回NULL。打开文件时需要指定文件的路径和打开方式。三、文件读写 文件打开后,就可以进行读写操作了。对于文本文件,可以使用`fscanf`和`fprintf`函数进行读写;...

c语言如何输入文本内容?
include <stdio.h> struct { int n;char name[10];}student;main(){ scanf("%d %s",&student.n,student.name);printf("学号:%d\\n姓名:%s\\n",student.n,student.name);}

如何将在c语言中生成的数据保存到文本文件中?
printf("打开文件失败,程序退出!");exit(1);} fprintf(pf,"%d %f %s\\n",m,f,str);\/\/写入,test.txt文件内容为10 12.345000 testinfo if(pf)\/\/关闭文件 { fclose( pf);pf=NULL;} printf("数据已写入test.txt文件!\\n");return 0;} int fprintf( FILE *stream, const char *format...

相似回答