1. 程式人生 > >C語言 IO流操作

C語言 IO流操作

錯誤報告函式: void perror( char const *message );           標頭檔案stdio.h

終止執行: void exit ( int status );   status = EXIT_SUCCESS和EXIT_FAILURE     標頭檔案stdlib.h

MS-DOS和UNIX都支援採用 $program <data> answer 的方式進行輸入輸出重定向。從檔案data而不是鍵盤作為標準輸入進行讀取,標準輸出寫到檔案answer而不是螢幕上。

FILENAME_MAX表示最長的檔名長度     FOPEN_MAX表示你能同時開啟多少個檔案

標準IO流操作函式:


FILE* fopen( char const *name, char const *mode);失敗返回NULL    FILE並不是指檔案,而是一個與檔案相關聯的流。

FILE* freopen(char const* filename, char const *mode, FILE* stream);   stream時需要開啟的流,可以使fopen函式返回的流,也可以為stdin,stdout,stderr.

該函式首先關閉這個流,然後用指定檔案和模式開啟這個流,失敗返回NULL。成功返回第三個引數。

int fclose( FILE *f);  關閉流。成功返回0,失敗返回EOF

除了可以從標準IO流操作,也可以自定義流中操作:

int fgetc(FILE *stream)   int fputc(int character, FILE *stream)

int getc(FILE *stream)   int putc(int character, FILE *stream)

檔案末尾返回EOF

撤銷字元IO:

int ungetc(int character, FILE *stream);        把character壓回stream流中

如果採用fseek、fsetpos、rewind函式改變流的位置,退回的字元將被丟棄。

未格式化的行IO只能簡單讀取或寫入字串,而格式化的行IO可以進行不同型別的轉換。

char *fgets(char *buffer, int buffer_size, FILE *stream) 

char *gets(char* buffer)

錯誤返回NULL

int fputs(char const *buffer, FILE *stream)

int puts(char const *buffer)

錯誤返回EOF

buffer中都會包含一個NULL作為結尾,所以字元個數為buffer-1個

格式化行IO

int fscanf(FILE *stream, char const *format, ...) 從stream讀

int scanf(char const *format, ...) 從標準IO

int sscanf(char const *string, char const *format,..) 從string中讀

檔案末尾返回EOF 

int fprintf(FILE *stream, char const *format, ...);

int printf(char const *format,...);

int sprintf(char *buffer, char const *format,...);//注意緩衝區溢位的事情,由於沒有宣告長度。

二進位制IO

size_t fread( void *buffer, size_t size, size_t count, FILE *stream);

size_t fwrite( void *buffer, size_t size, size_t count, FILE *stream);

重新整理和定位函式

int fflush(FILE *stream)重新整理緩衝區       long ftell(FILE *stream)返回流當前的位置,即下一個讀取或寫入將要開始的位置距離檔案起始位置的偏移量。

int fseek(FILE *stream, long offset, int from)


void rewind(FILE *stream)回到起始位置                 int fgetpos(FILE *stream, fpos_t *position)                int fsetpos(FILE* stream, fpos_t const *position);

大多數流都有緩衝區概念,並且大都是預設緩衝區狀態為滿的時候才重新整理。

相關推薦

C語言 IO操作

錯誤報告函式: void perror( char const *message );           標頭檔案stdio.h 終止執行: void exit ( int status );   status = EXIT_SUCCESS和EXIT_FAILURE  

C語言檔案操作的二進位制讀寫和定位(fwrite、fread、fseek)

二進位制寫檔案中用到fwrite函式,這個函式對檔案進行寫操作的時候寫進去的資料就是二進位制的資料包括後面的fread函式,進行讀操作的時候也是直接讀二進位制,這也是在對檔案操作時,這兩個函式與fpr

c++ io 操作 以及字串操作

字元流操作如下: #include <fstream> void main(){ char* fname = "D://dest.txt"; //開啟輸出流 ofstream fout(fname); //建立失敗 if (fout.bad

C語言-文件操作

不常用 inux div 失敗 ungetc 大量 發送 size_t 回車 總結一下今天下午學習的內容: 13.1 文件通常是硬盤或固態硬盤上的一段已命名儲存區,在使用C語言與文件進行交互時,有“文本模式”和“二進制模式”兩種。對於UNIX和Linux來說這兩種模式沒有

C語言文件操作

pri 三種 文件的 fputs put 空指針 putc err 作文 文件操作 文件的打開 FILE * fopen(const char filename,const char * mode); 文件的打開操作 fopen 打開一

C語言文件操作函數

feof err 函數 fop size con 緩沖 include gin clearerr(清除文件流的錯誤旗標) 相關函數 feof 表頭文件 #include<stdio.h> 定義函數 void clearerr(FILE * stre

【轉】 C語言文件操作詳解

pri void rfi 識別 archive format 隨機 stat 文本文 轉自:http://www.cnblogs.com/likebeta/archive/2012/06/16/2551780.html C語言中沒有輸入輸出語句,所有的輸入輸出功能都用

關於java io操作文件探討

字節流 程序 文本 puts not buffered 編碼 字符編碼 edr 1.任務描述   2.讀取一個字符   3.讀取整個文件   4.復制文件   5.復制大文件   6.利用字符流解決亂碼問題 一.任務描述   大家都知道程序是程序的運行是離不

C語言定義的操作mysql數據庫的接口

oca 個數 hid isp efi 否則 nds 判斷 basename 編寫的環境:centos7系統下,對mysql的衍生mariadb進行數據庫的操作,包含設置訪問數據庫的參數,查詢數據庫和增刪改數據庫的三個功能。對於查詢數據庫,我這裏允許不返回查詢結果,用於判斷查

【轉載】JAVA中IO操作的基本規律總結

reader 對象 作文 若是 gpo 是否 目的 io流 基本 流操作的基本規律:三個明確 1.明確源和目的; 源:輸入流即讀取流 InputStream,Reader 目的:輸出流即寫入流 OutputStream, Writer 2.明確操作的數據是

關於C語言文件操作

打開文件 tchar 文件指針 讀取文件 聲明 filename c語言 com 用戶 關於C語言的文件操作之前我也寫過一篇博客來介紹,但是當時寫的很不全面,只是簡單的使用了一下 ,今天再從新學習一下。 1、文件的寫 首先還是先看一個簡單的例子: include<s

Java 常用IO操作詳解

字符集 -s fileinput 顯式 print OS 數值 重寫 目錄 1.基本概念 IO:Java對數據的操作是通過流的方式,IO流用來處理設備之間的數據傳輸,上傳文件和下載文件,Java用於操作流的對象都在IO包中。 2.IO流的分類 圖示:(主要IO流)

神奇的C語言,這才是C語言大牛操作,作為面試題,怕是秒殺眾人

想想 自己 初始 fun 怎麽 指向 都是 計算 換行 當然下面列出來的幾點都是C的基礎用法,只不過是這些用法可能平時不會被註意。所以很多東西第一次看到的時候,可能會覺得很怪異,但是細細想想就能很好的理解,也就能更好的清楚C語言的一些特性。但是在具體的編碼過程當中,我還是希

2. C語言文件操作經典習題

main pri 多少 linux 文件操作 spa 加密文件 include 加密 1. 統計英文文本文件中,有多少個大寫字母、小寫字母、數字、空格、換行以及其他字符。 #define _CRT_SECURE_NO_WARNINGS #include <stdio

C 語言 文件操作

二進制文件 lose 調用 pen nbsp c 語言 語言 文本文 錯誤 I/O級別:操作系統提供的I/O系統調用;C標準定義的I/O模型。 C語言I/O基於操作系統I/O實現,簡化了操作、具備可移植性。 文本模式和二進制模式: 文件內容為依據某編碼生成的字符,則稱為

C語言的位操作

C語言的位操作 轉載自https://www.cnblogs.com/nibuyaoni/p/5547795.html c語言的位操作最常用的地方就是用在對暫存器的寫值上。 1.位與:& 操作:1 & 1 = 1;  1 & 0 =

Linux 下c語言連線與操作MYSQL

1.安裝mysql 2.安裝mysql.h函式庫 sudo apt-get install libmysqlclient-dev 3. mysql_real_connect() 連線一個mysql伺服器  語法如下 MYSQL *mysql_real_connect

C語言(四 檔案操作、遞迴)

檔案讀寫 我們用**fopen()**來新建一個檔案或開啟一個已有的檔案. 函式原型為File *fopen(const char *filename , const char *mode) filename是檔名,mode代表訪問方式。 mode

嵌入式C語言之位操作詳解

1.位操作符:     位操作直接將兩個運算元按照二進位制對應進行操作;     例:0xaa&(位與)0xf0=0xa0;     邏輯操作是  兩個運算元整體來操作;     例

關於IO操作

輸入流和輸出流相對於記憶體裝置而言. 將外設中的資料讀取到記憶體中:輸入 將記憶體的數寫入到外設中:輸出。 字元流的由來: 其實就是:位元組流讀取文字位元組資料後,不直接操作而是先查指定的編碼表。獲取對應的文字。 在對這個文字進行操作。簡單說:位元組流+編碼表