当前位置:首页 » 编程语言 » c语言课程文件存取
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言课程文件存取

发布时间: 2022-08-16 12:12:46

c语言中文件的存取是什么意思,如何实现,scanf、gets算是吗

所谓的文件存取,指的是在程序中实现对文件的读取和存入操作。
这个针对不同的数据,有不同的函数可以实现,也针对是文本文件还是二进制文件,有不同的函数
但不管什么操作,都得先打开文件,例如
FILE *fp;
fp=fopen("a.txt","w");
具体的文件相关函数,你可以查查资料

㈡ C语言课程设置

10分。。。。

㈢ C语言中文件的存取方式是什么

二进制方式 和 文本方式。
fopen 里可以定义 r,w,a,b 组合
顺序存取 或 随机存取(用fseek等函数帮助)

㈣ c语言如何用文件存储数据

具体操作步骤如下:

1、首先,创建一个新文件夹,在该文件夹中创建一个文档,如下图所示,然后进入下一步。

㈤ C语言数据文件有几种存储方式每种存储形式各有什么特点

一、auto auto称为自动变量。 局部变量是指在函数内部说明的变量(有时也称为自动变量)。用关键字auto进7行说明, 当auto省略时, 所有的非全程变量都被认为是局部变量, 所以auto实际上从来不用。 局部变量在函数调用时自动产生, 但不会自动初始化, 随函数调用的结束, 这个变量也就自动消失了, 下次调用此函数时再自动产生, 还要再赋值, 退出时又自动消失。 二、static static称为静态变量。根据变量的类型可以分为静态局部变量和静态全程变量。 1. 静态局部变量 它与局部变量的区别在于: 在函数退出时, 这个变量始终存在, 但不能被其它、函数使用, 当再次进入该函数时, 将保存上次的结果。其它与局部变量一样。 2. 静态全程变量 Turbo C2.0允许将大型程序分成若干独立模块文件分别编译, 然后将所有模块的目标文件连接在一起, 从而提高编译速度, 同时也便于软件的管理和维护。静态全程变量就是指只在定义它的源文件中可见而在其它源文件中不可见的变量。它与全程变量的区别是: 全程变量可以再说明为外部变量(extern), 被其它源文件使用,而静态全程变量却不能再被说明为外部的, 即只能被所在的源文件使用。 三、extern extern称为外部变量。为了使变量除了在定义它的源文件中可以使用外, 还要被其它文件使用。因此, 必须将全程变量通知每一个程序模块文件, 此时可用extern来说明。 四、register register称为寄存器变量。它只能用于整型和字符型变量。定义符register说明的变量被Turbo C2.0存储在CPU的寄存器中, 而不是象普通的变量那样存储在内存中, 这样可以提高运算速度。但是Turbo C2.0只允许同时定义两个寄存器变量,一旦超过两个, 编译程序会自动地将超过限制数目的寄存器变量当作非寄存器变量来处理。因此, 寄存器变量常用在同一变量名频繁出现的地方。另外, 寄存器变量只适用于局部变量和函数的形式参数, 它属于auto型变量,因此, 不能用作全程变量。定义一个整型寄存器变量可写成: register int a;

㈥ C语言——保存读取文件

1.用文件操作函数就可以实现读取和保存。打开函数fopen,mode参数设置为“r”就可以使用fscanf函数读取文件内容。用fclose函数就可以实现保存并关闭文件。
2.对于程序来说,不管后缀名如何,文件分为两种类型:文本文件和二进制文件。
c语言里有一系列文件操作函数。区分文本和二进制文件,需要在打开文件时设置不同的控制符mode的变量即可。
3.fopen的函数原型:file
*
fopen(const
char
*
path,const
char
*
mode);
fopen函数的第一个参数是文件路径,第二个参数是打开方式,有以下几种方式:
r
以只读方式打开文件,该文件必须存在。
r+
以可读写方式打开文件,该文件必须存在。
rb+
读写打开一个二进制文件,允许读数据。
rw+
读写打开一个文本文件,允许读和写。
w
打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+
打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a
以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(eof符保留)
a+
以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
(原来的eof符不保留)
wb
只写打开或新建一个二进制文件;只允许写数据。
wb+
读写打开或建立一个二进制文件,允许读和写。
wt+
读写打开或着建立一个文本文件;允许读写。
at+
读写打开一个文本文件,允许读或在文本末追加数据。
ab+
读写打开一个二进制文件,允许读或在文件末追加数据。
上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b
字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。

㈦ C语言 对文件进行操作的三个主要过程是

C语言对文件进行操作的三个主要过程是:打开文件、操作文件、关闭文件。

C语言的文件处理功能依据系统是否设置“缓冲区”分为两种:一种是设置缓冲区,另一种是不设置缓冲区。

由于不设置缓冲区的文件处理方式,必须使用较低级的I/O函数(包含在头文件io.h和fcntl.h中)来直接对磁盘存取,这种方式的存取速度慢,并且由于不是C的标准函数,跨平台操作时容易出问题。


(7)c语言课程文件存取扩展阅读

C语言文件有不同的类型,在程序设计中,主要用到两种文件:

(1)程序文件:包括源程序文件(后缀为.c)、目标文件(后缀为.obj)、可执行文件(后缀为.exe)等。这种文件的内容是程序代码。

(2)数据文件:文件的内容不是程序,而是供程序运行时读写的数据,如在程序运行过程中输出到磁盘(或其他外部设备)的数据,或在程序运行过程中供读入的数据。如一批学生的成绩数据、货物交易的数据等。

为了简化用户对输入输出设备的操作,使用户不必去区分各种输入输出设备之间的区别,操作系统把各种设备都统一作为文件来处理。从操作系统的角度看,每一个与主机相连的输入输出设备都看作一个文件。例如,终端键盘是输入文件,显示屏和打印机是输出文件。

输入输出是数据传送的过程,数据如流水一样从一处流向另一处,因此常将输入输出形象地称为流(stream),即数据流。流表示了信息从源到目的端的流动。在输入操作时,数据从文件流向计算机内存,在输出操作时,数据从计算机流向文件(如打印机、磁盘文件)。

C的数据文件由一连串的字符(或字节)组成,而不考虑行的界限,两行数据间不会自动加分隔符,对文件的存取是以字符(字节)为单位的。输入输出数据流的开始和结束仅受程序控制而不受物理符号(如回车换行符)控制,这就增加了处理的灵活性。

㈧ 127、对C语言的文件存取方式的论述中,正确的是文件( )。 A、只能顺

正确的是
C、可以是顺序存取,也可以是
随机存取
例如用
fseek()
来定位。

㈨ C语言程序设计,文件的存取与访问

#include<stdio.h>

#define N 40
struct STUDENT { int no; char name[20],sex[3]; float t1,t2,t3,t4,ave; };
void f1(STUDENT *mclass)
{ int no,n,i;
FILE *fp;
n=0;
while ( n<N )
{ printf("请输入学生编号(编号为0结束):"); scanf("%d",&no); if ( no<=0 ) break;
mclass[n].no=no;
printf("请输入编号为%d的学生信息(姓名 性别 成绩1 成绩2 成绩3 成绩4): ",no);
scanf("%s%s%f%f%f%f",mclass[n].name,mclass[n].sex,
&mclass[n].t1,&mclass[n].t2,&mclass[n].t3,&mclass[n].t4);
mclass[n].ave=(mclass[n].t1+mclass[n].t2+mclass[n].t3+mclass[n].t4)/4;
n++;
}
if ( n )
{ if ( fp=fopen("d:\student.dat","wb+") )
{ fwrite(&n,sizeof(int),1,fp);
for ( i=0;i<n;i++ ) fwrite(mclass+i,sizeof(struct STUDENT),1,fp);
fclose(fp);
} else printf("无法建立输出文件。 ");
} else printf("输出文件没有建立,因为学生记录数为0。 ");
}
void f2(STUDENT *mclass)
{ FILE *fp,*tp;
int n,i,j,k,index[N];
if ( fp=fopen("d:\student.dat","rb") )
{ if ( tp=fopen("d:\stusort.dat","wb+") )
{ fread(&n,sizeof(int),1,fp); if ( n>N ) n=N;
for ( i=0;i<n;i++ ) fread(mclass+i,sizeof(STUDENT),1,fp);
for ( i=0;i<n;i++ ) index[i]=i;
for ( i=0;i<n-1;i++ )
for ( j=i+1;j<n;j++ )
if ( mclass[index[i]].ave<mclass[index[j]].ave )
{ k=index[i]; index[i]=index[j]; index[j]=k;
}
fwrite(&n,sizeof(int),1,tp);
for ( i=0;i<n;i++ ) fwrite(mclass+index[i],sizeof(STUDENT),1,tp);
fclose(tp);
} else printf("无法建立输出数据文件。 ");
fclose(fp);
} else printf("无法打开文件读取。 ");
}
void main()
{ STUDENT mClass[N];
int n,i;
FILE *fp;
f1(mClass);
f2(mClass);
if ( fp=fopen("d:\student.dat","rb") )
{ fread(&n,sizeof(int),1,fp); if ( n>N ) n=N;
for ( i=0;i<n;i++ )
{ fread(mClass+i,sizeof(STUDENT),1,fp);
printf("%d %-10s %s %.1f %.1f %.1f %.1f %.1f ",
mClass[i].no,mClass[i].name,mClass[i].sex,
mClass[i].t1,mClass[i].t2,mClass[i].t3,mClass[i].t4,mClass[i].ave);
}
fclose(fp);
}
printf("-------------------------------------------------- ");
if ( fp=fopen("d:\stusort.dat","rb") )
{ fread(&n,sizeof(int),1,fp); if ( n>N ) n=N;
for ( i=0;i<n;i++ )
{ fread(mClass+i,sizeof(STUDENT),1,fp);
printf("%d %-10s %s %.1f %.1f %.1f %.1f %.1f ",
mClass[i].no,mClass[i].name,mClass[i].sex,
mClass[i].t1,mClass[i].t2,mClass[i].t3,mClass[i].t4,mClass[i].ave);
}
fclose(fp);
}
}

图中用了%10s输出姓名,程序中改成%-10s则姓名左对齐

㈩ 在C语言中,文件的存取是以 什么为单位

在C语言中,文件存取都是以字节作为单位的。
C语言支持很多文件输入输出函数,比如fread/fwrite,
fscanf/fprintf,
fgets/fputs,
fgetc/fgetc等。
不过其根本都是从文件中逐字节进行读取或写入,然后再做相应的判断或操作。
所以,文件存取的最基本单位就是文件存储的最基本单位,字节。