C和指標——輸入輸出函數筆記

來源:互聯網
上載者:User

 c語言中輸入/輸出採用流的概念,流就是記憶體中的一塊地區。當一個程式運行是,需要有資料的流動,或者是程式需要一些外部提供的參數來進行運算,或者是程式經過運算產生一些資料要進行儲存或傳遞到別的程式等,這也就是我們說的輸入資料流(前者)和輸出資料流(後者)。也就是說程式關心的是建立正確的輸出位元組資料,以及正確的解釋從輸入讀取的位元組資料。
既然流是有一塊緩衝區,那麼它就一定有緩衝作用。當作業系統能夠確定當前輸入/輸出跟互動沒有關係時,採用完全緩衝方式(當緩衝區滿了以後再進行重新整理);例如當從標準輸入時,就不會採用完全緩衝,見代碼:
viod f(){
    printf("請輸入資料: ");
    scanf("%d",&n);
}
當我們輸入時,螢幕上會先顯示“請輸入資料: ”,這也就是說在我們從標準輸入輸資料是,標準輸出也會同步重新整理。
在C語言中流分為文字資料流和二進位流,二進位流就是把記憶體中的東西直接進行複製,不會在進行轉換,一般編寫網路程式時會用到。C語言中的stdio.h主要提供的操縱流的函數。
開啟流
FILE *fopen(char const *name, char const *mode);
FILE *freopen(char const *name, char const *mode, FILE *stream);
關閉流
int fclose(FILE * f);
單個字元輸入:
int getchar();
int fgetc(FILE *stream);
int getc(FILE *stream);
單個字元的輸出:
int putchar(int ch);
int fputc(int ch, FILE *stream);
int putc(int ch, FILE *stream);
未格式化的行輸入/輸出:
char *fgets(char *buffer, int buffer_size, FILE *stream);
char *gets(char *buffer);
int fputs(char *buffer, FILE *stream);
int puts(char *buffer);
格式化的行輸入輸出:
int printf(char const *format,...);
int fprintf(FILE *stream, char const *format, ...);
int sprintf(char *buffer, char const *format, ...)
int scanf(char const *format, ...);
int fscanf(FILE *stream, char const *format, ...);
int scanf(char const *string,char const *format, ...);
錯誤報表:
void perror(char const *message);//當調用標準庫函數失敗時,編譯器會把一個外部整型變數errno(在errno.h中)設定值,然後傳遞給使用者,提示出錯原因,perror簡化了這個過程,當出錯時,perror輸出message的內容,然後一個分號和一個空格,然後列印用於解釋errno錯誤碼的資訊。
void exit(int status);//參數用EXIT_SUCCESS或EXIT_FAILURE

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.