当前位置:首页 » 文件管理 » c语言文件可以随机存取吗
扩展阅读
经期期间可以做运动吗 2025-05-15 04:14:28
驾车证照片可以换吗 2025-05-15 04:14:20
菲律宾有什么可以买的 2025-05-15 03:56:38

c语言文件可以随机存取吗

发布时间: 2022-11-25 20:10:04

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

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

❷ c语言中随机读写方式不适合文本文件

计算机的存储在物理上是二进制的,所以文本文件与二进制文件的区别并不是物理上的,而是逻辑上的.这两者只是在编码层次上有差异.
简单来说,文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等.二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码).C的文本方读写与二进制读写的差别仅仅体现在回车换行符的处理上.文本方式写时,每遇到一个''\n''(0AH换行符),它将其换成''\r\n''(0D0AH,回车换行),然后再写入文件;当文本读取时,它每遇到一个''\r\n''将其反变化为''\n'',然后送到读缓冲区.正因为文本方式有''\n''--''\r\n''之间的转换,其存在转换耗时.二进制读写时,其不存在任何转换,直接将写缓冲区中数据写入文件.

❸ C语言基础知识中:线性表的顺序、链式存储结构分别是:随机存取和顺序存取结构对吗

不对,数组是随机存取,所有的线性表都是顺序存取结构。你想想,我要找第5个元素,用数组直接 A[4] 就找到了,而线性表就要从“头”元素开始一个一个地往后遍历,直到需要的那个,随机不了。

❹ 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语言中文件的存取方式是什么

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

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

在C语言中,打开文件可以指定文件的存取方式。打开用函数fopen。

其原型为:FILE * fopen(const char * path,const char * mode);

需要包含头文件stdio.h。

当打开成功时会返回FILE *指针,用于后续文件的读写关闭等操作。参数path为文件的路径及文件名。mode即存取方式,包括:

1、r 以只读方式打开文件,该文件必须存在。

2、r+ 以可读写方式打开文件,该文件必须存在。

3、rb+ 读写打开一个二进制文件,允许读写数据,文件必须存在。

4、w打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。

5、w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。

6、a以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)

7、a+以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)

8、wb只写打开或新建一个二进制文件;只允许写数据。

9、wb+读写打开或建立一个二进制文件,允许读和写。

10、ab+读写打开一个二进制文件,允许读或在文件末追加数据。

❼ C语言:为什么线性结构的顺序存储是一种随机存取存储结构谢谢

顺序存储中,一般一个元素紧紧地挨着另外的一个元素,设序号为i 的元素的存储位置为Li,每个元素长度为d,则序号为j的元素的存储位置为Li + d(j - i),这个式子对所有元素序号(下标)都是一样的计算时间,也就是说,访问任何一个元素的时间都是相同的,因此是随机存取
当然,C语言中自然就是数组,一个接一个存放,结论一样的

❽ c语言怎么随机的读取磁盘文本文件

你的用变量path作为文件绝对路径,你每次要将它的值改变,而你的文件位置是保持不变的,这样当然读不到文件。你要保持同步,就是说path的值发生改变是就要同时把文件给重命名了,给文件重命名用rename()函数,函数原型:int rename(char *lpOldName,char *lpNewName);第一个参数是文件原名,第二个是重命名后的文件名,若重命名成功返回1,否则返回0。头文件stdio.h或io.h。还有要说你上面的代码有错,char path[20]="c:\\"; //你忘记了转义字符而且你应该从path[3]开始赋值,因为"c:\\"除去一个空字符就只有3个字符,下标是从0开始的(\\是一个字符)继续追问: 来自手机问问 文件都在一个文件夹里面,直接改变对应的路径是不是能直接读取到对应的文件呢?我想产生一个随机的路径,而这个随机只在文件名上体现 补充回答: 来自手机问问 知道你的意思,你是是比如文件是c:\test.txt,然后随机名是c:\t138.txt。这就对了,重命名可以不改变文件所在目录啊,比如这样调:rename("c:\\test.txt","c:\\t138.txt");
文件名就由test.txt变成了t138.txt,而所在目录并没有发生变化。 继续追问: 来自手机问问 那怎么才能展现随机读取呢?新手,包含。 补充回答: 来自手机问问 #include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
char path[]="C:\\ff.txt";
char rname[2];
FILE *fp;
/*产生10~20的随机数*/
srand((unsigned)time(NULL));
/*将整数转换成字符串*/
itoa(rand()%20+10,rname,10);
path[2]=rname[0];
path[3]=rname[1];
/*重命名文件*/
rename("C:\\ff.txt",path);
fp=fopen(path,"r");
if(fp==NULL)
{
printf("Open the file failed.\n");
}
else
{
printf("Open the file succed.\n");
}
return 0;
}
这段代码演示了c盘原来有一个ff.txt文件,后来被随机重命名为**.txt,程序去读取。
运行程序前要保证c盘存在ff.txt文件。 继续追问: 来自手机问问 还是那样,编译报错,哎,谢了 补充回答: 来自手机问问 我vc6编译通过啊,你什么编译器? 继续追问: 来自手机问问 一样。可能有地方写错了。 补充回答: VC6.0编译通过啊,可以稍微改一下: 补充回答: #include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{ char path[]="C:\\ff.txt";
char rname[2];
FILE *fp; /*产生10~20的随机数*/
srand((unsigned)time(NULL));
/*将整数转换成字符串*/
itoa(rand()%20+10,rname,10);
path[3]=rname[0];
path[4]=rname[1];
/*重命名文件*/
rename("C:\\ff.txt",path);
fp=fopen(path,"r");
if(fp==NULL)
{
printf("Open the file failed.\n");
}
else
{
printf("Open the file succed.\n");
}
return 0;
}

❾ C 语言 文本文件和二进制文件哪个是可以随机存取的为什么,急!!!

二进制文件是可以随机存取的
二进制是任意长度的文件,它保存有从0到0xff(0到255)不等的字节值。这些字节在二进制文件中没有任何意义,与此不同的是,在文本文件中,值为13就意味着回车,10意味着换行,26意味着文件结束,而读取文本文件的软件要能够解决这些问题。
在现在的术语中,我们将二进制文件称为包含了字节的字符流,大多数语言倾向于将其理解为字符流而不是文件。重要的部分是数据流本身而不是其来源。在C语言中,你能从文件或数据流方面来考虑数据。或者,你可以将其理解为一组长的数组。通过随机存取,你可以读写数组的任意部分。
而文本文件是按顺序读取的,这就是他们之间的不同和为什么二进制文件是随机读取的原因

❿ c语言的数组随机存取是什么意思

随机存取需要和顺序存取做一下比较,比较之后就明白了
比如给你一列纵队的人,让你找到位置为5的人,第一种方法是你从第一个位置开始一个一个往后找,直到找到位置为5的位置,这样的就是顺序存取
而如果你已经知道5的位置,不需要经过前面的四个位置直接到达位置为5的位置,那么这样的就是随机存取