當前位置:首頁 » 編程語言 » c語言中的文件指針
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中的文件指針

發布時間: 2022-01-22 03:10:44

A. c語言,文件指針

fp 是用來指向 FILE 結構類型的一個指針,
fopen 執行後,fp 將指向一個 FILE 結構,這個結構代表了這個文件。

B. C語言 文件的指針是什麼類型

c語言文件類型指針是通過file
*fp;
這種形式進行定義的。
關於file結構在vc6中有如下定義:
#ifndef _file_defined
struct _iobuf {
char *_ptr; //文件輸入的下一個位置
int _cnt; //當前緩沖區的相對位置
char *_base; //指基礎位置(即是文件的起始位置)
int _flag; //文件標志
int _file; //文件描述符id
int _charbuf; //檢查緩沖區狀況,如果無緩沖區則不讀取
int _bufsiz; //文件緩沖區大小
char *_tmpfname; //臨時文件名
};
typedef struct _iobuf file;
#define _file_defined
#endifc程序用不同的file結構管理每個文件。程序員可以使用文件,但是不需要知道file結構的細節。實際上,file結構是間接地操作系統的文件控制塊(fcb)來實現對文件的操作的,如下圖:
上面圖中的_file實際上是一個描述符,作為進入打開文件表索引的整數。
文件是存放在物理磁碟上的,包括文件控制塊(fcb)和數據塊。文件控制塊通常包括文件許可權、日期(創建、讀取、修改)、擁有者、文件大小、數據塊信息。數據塊用來存儲實際的內容。當打開一個文件時,程序會將物理磁碟上的文件數據塊讀入到內存,然後通過文件指針的移動讀取內存中的文件數據。
相關函數:
file
*fopen(
char
*file,
char
*open_mode
);
//打開文件,讀文件到內存,返迴文件信息結構指針
int
fread(
char
s,
int
size,
int
num,
file
*fp
);
//按位元組讀取文件內容到s中
int
fwrite(
char
s,
int
size,
int
num,
file
*fp
);
//按位元組將s地址中的數據寫到文件中
char
*fgets(
char
*s,
int
max_size,
file
*fp);
//讀一行數據到緩沖區s中
int fseek(
file
*fp,
long
offset,
int
whence);
//移動文件指針到指定位置
void
rewind(file
*fp);
//回到文件頭
long
ftell(file
*fp);
//得到當前文件偏移位置
fclose(fp);
//關閉文件,刷新緩存到物理磁碟上

C. c語言中怎樣定義文件指針

FILE
*fp
這就是
文件指針
定義方式啊
還問
文件指針怎麼定義?
你是想知道FILE是什麼吧?
它是一個
結構體

struct
_iobuf
{
char
*_ptr;
int
_cnt;
char
*_base;
int
_flag;
int
_file;
int
_charbuf;
int
_bufsiz;
char
*_tmpfname;
};
typedef
struct
_iobuf
FILE;

D. C語言文件指針

用強制類型轉換
flag
=
(unsigned
int)(*infile);
可以用printf("flag
=
%d,
*infile
=
%d
",
flag,
*infile)測試。
補充:
上次匆匆忙忙看了你的問題,覺得有點奇怪,今天在VC上調了一下,不知道你的編譯環境是什麼,我在VC6.0上printf("\n
%d",*infile);
是一個大整數,應該是一個指針值,理論上也應該如此,infile本來就是一個文件句柄。
看你的需求彷彿是想在讀取文件時能知道當前讀取的位元組數,還是應該用ftell(FILE
*)函數,如果想得到整個文件的大小,先移動到文件末尾,然後ftell(),ftell()示例如下,在VC6.0上編譯調試通過:
#include
<stdio.h>
void
main()
{
char
k;
FILE
*infile;
char
in_name[]
=
"test.txt";
//接收要打開的文件名
infile
=
fopen(in_name,"rb");
//假設文件能正常打開
while(!feof(infile))
//判斷是否文件尾
{
printf("%d\n",
ftell(infile));
k=fgetc(infile);
//讀入一個字元
}
}

E. c語言中關於文件指針的問題

做兩個指針 一個記錄塊起始位置一個移動

F. c語言文件指針的問題

文件指針 是普通指針, 只不過它指向一個結構,這個結構 是編譯器定義的 名叫 FILE 的結構, fopen 函數,返回 文件指針。指向FILE 結構。

G. 在C語言中,標准輸入文件是什麼,它的指針是什麼

鍵盤系統的標准輸入文件 指針stdin,顯示器是系統的標准輸出文件 指針stdout

H. C語言的文件的位置指針

網上給你找的,你看看哈。注意形象化的概念。
-----------------------------
在學習文件定位函數之前,需要了解一下文件位置指針的概念。文件位置指針只是一個形象化的概念,在C語言中用文件位置指針來表示文件當前讀或寫的數據在文件中的位置。當通過fopen函數打開文件時,可以認為文件位置指針總是指向文件的開頭、第一個數據之前。

當文件位置指針指向文件末尾時,表示文件結束。當進行讀操作時,總是從文件位置指針所指的位置開始,去讀其後的數據,然後位置指針移到尚未讀的數據之前,以備指示下一次的讀(或寫)操作。當進行寫操作時,總是從文件位置指針所指位置去寫,然後移到剛寫入的數據之後,以備指示下一次輸出的起始位置。

「文件指針」和「文件位置指針」是兩個不同的概念。

文件指針是指在程序中定義的FILE類型的變數,通過fopen函數調用給文件指針賦值,使文件指針和某個文件建立聯系(這種聯系實際上是通過fopen函數說明使用文件的方式),C語言中通過文件指針實現對文件的各種操作。

摘自:東北大學出版社李一波編著《新概念C語言》
--------------------------------------

I. c語言中怎樣定義文件指針

頭文件後面寫一個#define FILE_PATH "D:/T.txt"//引號裡面是指向的文件路徑

J. C語言中打開文件的指針

用指針數組就可以了,如下:
FP *fa[100];
然後讓數組的每個元素指向某個打開文件即可,fprint(fa[6], "%d",x);
補充:
既然是數組當然可以用下標變化來操作