c语言read函数可以打开文件吗,c语言read函数读取文件

本文目录一览:

c语言求助!readfile()那个函数有问题,请您帮助写一个可以没有问题的代码。真心感谢您!

#includestdio.h

#includemath.h

#includemalloc.h

#includestdlib.h

#includestring.h

enum sex{

female,male

};

struct student

{

char name[20];

enum sex sex;

int score[3];

char number[9];

struct student *next;

};

//学生结构体

struct student* inputcard()

//录入学生信息系统(所有学生信息)

{

int i=1;

int n,k;

printf(“输入学生个数:”);

//检错。学生个数正确

scanf(“%d”,n);

struct student*p;

struct student*p0;

struct student*head;

p=(struct student*)malloc(sizeof(struct student));

printf(“输入学号8位:”);

//检错。学号数目正确

scanf(“%s”,p-number);

printf(“输入姓名:”);

scanf(“%s”,p-name);

printf(“选择性别:0男,1女”);

//检错。性别输入正确

scanf(“%d”,k);

switch(k)

{

case 1:

p-sex=female;

break;

case 0:

p-sex=male;

}

printf(“输入成绩,语数外的顺序”);

//成绩输入在0~100

scanf(“%d%d%d”,(p-score[0]),(p-score[1]),(p-score[2]));

head=p;

//先输入一个,记录链头

p0=p;

while(i=n-1)

{

int k;

p=(struct student*)malloc(sizeof(struct student));

printf(“输入学号:”);

scanf(“%s”,p-number);

printf(“输入姓名:”);

scanf(“%s”,p-name);

printf(“选择性别:0男,1女”);

scanf(“%d”,k);

switch(k)

{

case 1:

p-sex=female;

break;

case 0:

p-sex=male;

}

printf(“输入成绩,语数外的顺序”);

scanf(“%d%d%d”,(p-score[0]),(p-score[1]),(p-score[2]));

p0-next=p;

p0=p;

i++;

}

p0-next=NULL;

return

head;

}

void writefile0(struct student*head) //已知链表头head,将之写入文件中

{

struct student*p1;

FILE *f0;

char string[40];

printf(“请输入文件路径或者文件名字!(扩展名)”);

scanf(“%s”,string);

f0=fopen(string,”w”);

//新建一个文件

p1=head;

while(p1!=NULL)

{

fprintf(f0,”%5s “,p1-number);

fprintf(f0,”%5s “,p1-name);

fprintf(f0,”%5d “,p1-sex);

fprintf(f0,”%5d “,p1-score[0]);

fprintf(f0,”%5d “,p1-score[1]);

fprintf(f0,”%5d\n”,p1-score[2]);

p1=p1-next;

}

printf(“所有学生的信息已写入文件%s中\n”,string);

fclose(f0);

}

struct student* readfile0() //读取原始文件(所有学生的信息)

{

FILE *f0;

struct student *head=NULL, *tail,*m;

char string[40];

student temp;

printf(“请输入总信息的文件名:”);

scanf(“%s”,string);

while((f0=fopen(string,”r”))==NULL)

{

printf(“不能打开,重新输入\n”);

scanf(“%s”,string);

}

while(!feof(f0))

{

fread(temp,sizeof(struct student),1,f0);

m=(struct student*)malloc(sizeof(struct student));

*m = temp;

if ( head==NULL )

head=m;

else

tail-next=m;

tail=m;

}

tail-next=NULL;

printf(“该文件已打开!\n”);

fclose(f0);

return

head;

}

void Free(student * head)

{

student *p = head;

while(p != NULL)

{

p = head-next;

free(head);

head = p;

}

}

void main()

{

struct student* base0;

struct student* base1;

base0=inputcard();

writefile0(base0);

base1=readfile0();

Free(base0);

Free(base1);

}

c语言中fopen函数的打开方式,二进制打开和正常打开文件有什么区别?

r模式打开的文件一般都是ASCII文件,也就是文件文件,供直接阅读的(用记事本程序打开该文件可以直接阅读),这种方式下打开文件一般用fscanf()/fgetc()等函数操作

rb模式打开的文件一般不用于直接阅读(用记事本打开后看到的可能是乱码),而是存取程序要用到的二进制数据,这种方式下打开文件一般用fread()函数进行操作

如何用C语言fopen函数实现这样的文件打开功能?

部分方法:\x0d\x0afopen的函数原型:FILE * fopen(const char * path,const char * mode);\x0d\x0afopen函数的第一个参数是文件路径,第二个参数是打开方式,有以下几种方式:\x0d\x0ar 以只读方式打开文件,该文件必须存在。\x0d\x0ar+ 以可读写方式打开文件,该文件必须存在。\x0d\x0arb+ 读写打开一个二进制文件,允许读数据。\x0d\x0arw+ 读写打开一个文本文件,允许读和写。\x0d\x0aw 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。\x0d\x0aw+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。\x0d\x0aa 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)\x0d\x0aa+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)\x0d\x0awb 只写打开或新建一个二进制文件;只允许写数据。\x0d\x0awb+ 读写打开或建立一个二进制文件,允许读和写。\x0d\x0awt+ 读写打开或着建立一个文本文件;允许读写。\x0d\x0aat+ 读写打开一个文本文件,允许读或在文本末追加数据。\x0d\x0aab+ 读写打开一个二进制文件,允许读或在文件末追加数据。\x0d\x0a上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。\x0d\x0a\x0d\x0aC语言的文件处理的过程是,先声明一个文件指针,然后用fopen函数打开文件,fopen打开文件成功的话返回一个指针该流的文件指针,然后利用指针对文件进行操作就好了,最后完事了在fclose函数关闭流,并释放指向他的指针。\x0d\x0a例如:要对c:\example.txt的文本文件内容为:ISP,进行操作\x0d\x0a#include \x0d\x0a\x0d\x0aint main()\x0d\x0a{\x0d\x0achar ch;\x0d\x0aFILE* fp;\x0d\x0achar fname[50] = “c:\example.txt”;\x0d\x0afp = fopen(fname,”r”); //只供读取\x0d\x0aif(fp == NULL) //如果失败了\x0d\x0a{\x0d\x0aprintf(“ERROR!”);\x0d\x0areturn 1;\x0d\x0a}\x0d\x0a//getc()用于在打开文件中获取一个字符\x0d\x0awhile((ch = getc(fp)) != EOF) //循环获取直至文件结束 EOF标志(End Of File)\x0d\x0aputchar(ch); //打印获取到的字符\x0d\x0afclose(fp); //关闭文件\x0d\x0areturn 0;\x0d\x0a}\x0d\x0a\x0d\x0a希望对你有帮助!

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/154488.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-16 14:12
下一篇 2024-11-16 14:13

相关推荐

  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python中capitalize函数的使用

    在Python的字符串操作中,capitalize函数常常被用到,这个函数可以使字符串中的第一个单词首字母大写,其余字母小写。在本文中,我们将从以下几个方面对capitalize函…

    编程 2025-04-29
  • vue下载无后缀名的文件被加上后缀.txt,有后缀名的文件下载正常问题的解决

    本文旨在解决vue下载无后缀名的文件被加上后缀.txt,有后缀名的文件下载正常的问题,提供完整的代码示例供参考。 一、分析问题 首先,需了解vue中下载文件的情况。一般情况下,我们…

    编程 2025-04-29
  • Python中set函数的作用

    Python中set函数是一个有用的数据类型,可以被用于许多编程场景中。在这篇文章中,我们将学习Python中set函数的多个方面,从而深入了解这个函数在Python中的用途。 一…

    编程 2025-04-29
  • 如何在Java中拼接OBJ格式的文件并生成完整的图像

    OBJ格式是一种用于表示3D对象的标准格式,通常由一组顶点、面和纹理映射坐标组成。在本文中,我们将讨论如何将多个OBJ文件拼接在一起,生成一个完整的3D模型。 一、读取OBJ文件 …

    编程 2025-04-29
  • Python中读入csv文件数据的方法用法介绍

    csv是一种常见的数据格式,通常用于存储小型数据集。Python作为一种广泛流行的编程语言,内置了许多操作csv文件的库。本文将从多个方面详细介绍Python读入csv文件的方法。…

    编程 2025-04-29
  • 为什么用cmd运行Java时需要在文件内打开cmd为中心

    在Java开发中,我们经常会使用cmd在命令行窗口运行程序。然而,有时候我们会发现,在运行Java程序时,需要在文件内打开cmd为中心,这让很多开发者感到疑惑,那么,为什么会出现这…

    编程 2025-04-29
  • Python程序文件的拓展

    Python是一门功能丰富、易于学习、可读性高的编程语言。Python程序文件通常以.py为文件拓展名,被广泛应用于各种领域,包括Web开发、机器学习、科学计算等。为了更好地发挥P…

    编程 2025-04-29
  • 单片机打印函数

    单片机打印是指通过串口或并口将一些数据打印到终端设备上。在单片机应用中,打印非常重要。正确的打印数据可以让我们知道单片机运行的状态,方便我们进行调试;错误的打印数据可以帮助我们快速…

    编程 2025-04-29
  • 三角函数用英语怎么说

    三角函数,即三角比函数,是指在一个锐角三角形中某一角的对边、邻边之比。在数学中,三角函数包括正弦、余弦、正切等,它们在数学、物理、工程和计算机等领域都得到了广泛的应用。 一、正弦函…

    编程 2025-04-29

发表回复

登录后才能评论