檔案基本操作,輸入輸出

2021-08-27 21:29:14 字數 2222 閱讀 7373

c語言

//c語言檔案操作函式總覽

#include//標頭檔案

file* fopen(const char* filename, const char* mode); //開啟檔案

//"wb"——檔案每次都覆蓋,開啟檔案的時候會先清空原來的內容;"ab"——檔案末尾追加寫入,不清空原來的內容

//在"wb"模式下,fopen返回值為null原因:1、檔案不存在,2、檔案是唯讀檔案

int fclose(file* p); //關閉檔案

size_t fwrite(const void* buf, size_t size, size_t count, file* p); //寫入資料,buf即要寫入的資料,size==1, 函式的返回值為位元組數

size_t fread(void* buf, size_t size, size_t nelem, file* fp); //從檔案中讀取資料,size==1,nelem表示最多讀取的位元組數,函式的返回值為實際讀取到的位元組數

//檔案寫入,寫入數字

int buf[4] = ;

fwrite(buf, 1, sizeof(buf), fp); //直接按位元組寫入

for(int i = 0; i < 4; i++) //格式化為字串寫入

double a = 4 / 3.0;

fwrite(&a, 1, sizeof(a), fp); //直接寫入

char text[16];

sprintf(text, "%.2lf", a);

fwrite(text, 1, strlen(text), fp); //格式化為字串後寫入,會丟失資料

//檔案寫入,寫入字串

char buf[16] = "hello";

fwrite(buf, 1, sizeof(buf), fp);

//檔案寫入,寫入結構體

struct student

;student xu = ;

fwrite(&xu, 1, sizeof(xu), fp); //整體寫入

fwrite(&xu.id, 1, 4, fp); //分別寫入

fwrite(&xu.gender, 1, 1, fp);

fwrite(&xu.name, 1, 16, fp);

//檔案讀取

const char* filename = "";

file* fp = fopen(filename, "rb");

if(fp == null) //返回值為null可能是目標檔案不存在或者fopen()引數設定錯誤,必須要設定為"rb"

char buf[128];

int n = fread(buf, 1, 128, fp);

//順序讀取(從頭開始讀取,順序讀取,已經讀取的內容無法回頭重新讀取)

char buf[4]; //每次唯讀四個位元組

while(!feof(fp))

c++

//寫入到文字檔案中

#include#includeofstream outfile;

outfile.open("output.txt");

outfile << "123" << endl;

outfile.close();

//讀取文字檔案

#include#includeifstream infile;

infile.open("input.txt");

if(!infile.is_open())

double value; //用於存放讀取到的資料

while(infile.good())

if(infile.eof())

cout << "end of file.\n" << endl;

else if(infile.fail())

cout << "input terminated by data mismatch.\n" << endl;

else

cout << "input terminated by unknown reason.\n" << endl;

infile.close();

python 檔案操作(輸入 輸出)

檔案物件不僅可以訪問普通的磁碟檔案,也可以訪問任何其他型別抽象層面的 檔案 檔案只是連續的位元組序列,資料的傳輸經常用到位元組流。file object open file name,access mode r buffering 1 buffering用於指示訪問檔案所採用的緩衝方式。其中0表示不...

檔案輸入 輸出

13.1 和檔案進行通訊 文字檢視和二進位制檢視 在文字檢視中,程式看到的內容和二進位制的內容可能不同,例如ms dos文字檔案用回車符和換行符的組合 r n來表示行尾,macintosh用乙個回車符 r來表示行尾。c程式使用乙個 n表示行尾。所以,如果c程式以文字檢視模式處理乙個ms dos文字檔...

檔案輸入輸出

檔案的兩種檢視 文字和二進位制。有的時候同乙個檔案以不同的檢視進行檢視,顯示是不同的,主要是控制字元 回車,換行 的不同。printf 是將各種型別轉換為適合的終端字元。所以打算將乙個結構體送入檔案的話不能用printf這一類函式。二進位制形式儲存,中間沒有從數字到字串形式的轉化。對於標準io,fr...