c語言file
㈠ 關於c語言中的FILE
你不能用指針,從文件中讀取的值不能付給指針
㈡ C語言中的FILE的用法!
#include
<stdio.h>
FILE類型是C語言的本身具有的類型。只要把這標准輸入輸出的頭文件「stdio.h」
包含在程序中,就可以使用文件類型FILE,不用再另外定義。
㈢ c語言中FILE類型是如何來的
C語言中FILE
VC中
在"stdio.h"中有如下定義
struct _iobuf {
char *_ptr; //文件輸入的下一個位置
int _cnt; //當前緩沖區的相對位置
char *_base; //指基礎位置(即是文件的其始位置)
int _flag; //文件標志
int _file; //文件的有效性驗證
int _charbuf; //檢查緩沖區狀況,如果無緩沖區則不讀取
int _bufsiz; //緩沖區的大小
char *_tmpfname; //臨時文件名
};
typedef struct _iobuf FILE。
㈣ C語言FILE結構體如何解釋
FILE結構體
C語言的stdio.h頭文件中,定義了用於文件操作的結構體FILE。這樣,我們通過fopen返回一個文件指針(指向FILE結構體的指針)來進行文件操作。可以在stdio.h(位於visual studio安裝目錄下的include文件夾下)頭文件中查看FILE結構體的定義,如下:
TC2.0中:
typedef struct {
short level; /* fill/empty level of buffer */
unsigned flags; /* File status flags */
char fd; /* File descriptor */
unsigned char hold; /* Ungetc char if no buffer */
short bsize; /* Buffer size */
unsigned char *buffer; /* Data transfer buffer */
unsigned char *curp; /* Current active pointer */
unsigned istemp; /* Temporary file indicator */
short token; /* Used for validity checking */
} FILE; /* This is the FILE object */
VC6.0中:
#ifndef _FILE_DEFINED
struct _iobuf {
char *_ptr; //文件輸入的下一個位置
int _cnt; //當前緩沖區的相對位置
char *_base; //指基礎位置(即是文件的其始位置)
int _flag; //文件標志
int _file; //文件的有效性驗證
int _charbuf; //檢查緩沖區狀況,如果無緩沖區則不讀取
int _bufsiz; //???這個什麼意思
char *_tmpfname; //臨時文件名
};
typedef struct _iobuf FILE;
#define _FILE_DEFINED
#endif
用VC 控制台程序實現Word 的排版功能,輸入文件名讀取小於64k 的英文文本,
然後對英文文本進行勻齊排版,最後結果為:一行70個字元,左右兩邊分別空
4 個字元,長單詞不能折斷,每行必須對齊,單詞中間插入空格。均勻插入。
注意:1、不能用STL庫,類似文件流fstream都不允許用
2、不能用sdk,mfc,windows api
3、用最基本的c/c++實現
從文件輸入輸出:
#include<stdio.h>
FILE *in,*out;
in=fopen("a.txt","r"); //其意義是在當前目錄下打開文件a.txt, 只允許進行「讀」操作,並使in指向該文件。
out=fopen("aout.txt","w"); //打開aout.txt, 只能向該文件寫入數據, 如果不存在則創建aout.txt;
fscanf(in,"%d",&a);
fprintf(out,"%d",a);
fscanf(stdin,"%d",&a)=scanf("%d",&a);
fclose(in);
fclose(out);
文件使用方式 意 義
「rt」只讀打開一個文本文件,只允許讀數據
「wt」只寫打開或建立一個文本文件,只允許寫數據
「at」追加打開一個文本文件,並在文件末尾寫數據
「rb」只讀打開一個二進制文件,只允許讀數據
「wb」 只寫打開或建立一個二進制文件,只允許寫數據
「ab」 追加打開一個二進制文件,並在文件末尾寫數據
「rt+」 讀寫打開一個文本文件,允許讀和寫
「wt+」 讀寫打開或建立一個文本文件,允許讀寫
「at+」 讀寫打開一個文本文件,允許讀,或在文件末追加數據
「rb+」 讀寫打開一個二進制文件,允許讀和寫
「wb+」 讀寫打開或建立一個二進制文件,允許讀和寫
「ab+」 讀寫打開一個二進制文件,允許讀,或在文件末追加數據
對於文件使用方式有以下幾點說明:
1. 文件使用方式由r,w,a,t,b,+六個字元拼成,各字元的含義是:
r(read): 讀
w(write): 寫
a(append): 追加
t(text): 文本文件,可省略不寫
b(banary): 二進制文件
+: 讀和寫
2. 凡用「r」打開一個文件時,該文件必須已經存在, 且只能從該文件讀出。
3. 用「w」打開的文件只能向該文件寫入。 若打開的文件不存在,則以指定的文件名建立該文件,若打開的文件已經存在,則將該文件刪去,重建一個新文件。
4. 若要向一個已存在的文件追加新的信息,只能用「a 」方式打開文件。但此時該文件必須是存在的,否則將會出錯。
5. 在打開一個文件時,如果出錯,fopen將返回一個空指針值NULL。在程序中可以用這一信息來判別是否完成打開文件的工作,並作相應的處理。因此常用以下程序段打開文件:
if((fp=fopen("c:\\hzk16","rb")==NULL)
{
printf("\nerror on open c:\\hzk16 file!");
getch(); //等待用戶敲入一個字元再運行
exit(1);
}
* 字元讀寫函數 :fgetc和fputc
* 字元串讀寫函數:fgets和fputs
* 數據塊讀寫函數:freed和fwrite
* 格式化讀寫函數:fscanf和fprinf
㈤ C語言中FILE *fp是什麼意思,文件流又是什麼
FILE 是系統定義的一種結構類型的名稱。
FILE *fp; 變數類型聲明。聲明 fp 是 FILE型指針,用於指向FILE類型 (文件結構)。
文件流-- 排成一隊,有先後次序的 輸入(或輸出)一串數據,駐留並通過 輸入輸出緩沖區,進出程序。如同水流般地流入或流出。它來自文件或寫入文件。
(5)c語言file擴展閱讀:
在程序運行時,常常需要將一些數據(運行的最終結果或中間數據)輸出到磁碟上存放起來,以後需要時再從磁碟中輸入到計算機的內存。這就要用到磁碟文件。
C語言將文件看作是一個字元(位元組)的序列,即一個一個字元(位元組)的數據順序組成。根據數據的組成形式,可分為ASCII文件和二進制文件。ASCII文件又稱文本(text)文件,它的每一個位元組可放一個ASCII碼,代表一個字元。二進制文件是把內存中的數據按其在內存中的存儲形式按原樣輸出到磁碟上存放。
㈥ C語言中FILE*fp是什麼意思
FILE 是系統定義的一種結構類型的名稱。
FILE *fp; 變數類型聲明。聲明 fp 是 FILE型指針,用於指向FILE類型 (文件結構)。
文件流-- 排成一隊,有先後次序的 輸入(或輸出)一串數據,駐留並通過 輸入輸出緩沖區,進出程序。如同水流般地流入或流出。它來自文件或寫入文件。
(6)c語言file擴展閱讀:
FILE *fp的替換用法:
fp=fopen("test.dat", "w"); /*建立一個文字文件只寫*/
fclose(fp); /*關閉文件*/
fwrite(const void*buffer,size_t size,size_t count,FILE*stream);
1、buffer:是一個指針,對fwrite來說,是要輸出數據的地址。
2、size:要寫入的位元組數;
3、count:要進行寫入size位元組的數據項的個數;
4、stream:目標文件指針。
㈦ c語言—怎樣打開和關閉一個文件file
假如C盤有一個文件file.txt,寫個程序向裡面寫入Hello World!(我是又手機寫的,可能格式有點糟): #include <stdio.h> void main () {FILE *fp=null;fp=fopen("c:\\file.txt","w"); if (fp = null) return ; fprintf (fp,"Hello World");fclose (fp);} fopen為打開, fclose為關閉, fprintf向文件中寫。你試著編譯看看。
㈧ C語言中的file是什麼與計算機中的文件有什麼區別
file在C語言中包括文本文件和二進制文件,而計算機中的文件不僅僅是這兩種,還包括各種可執行文件,比如cmd.exe等