當前位置:首頁 » 文件管理 » c語言文件可以隨機存取嗎
擴展閱讀
在網上可以查簡訊嗎 2025-05-15 07:29:17
8p游戲機可以投屏嗎 2025-05-15 07:28:34

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的位置,那麼這樣的就是隨機存取