簡體   English   中英

char *fgets(char *str, int n, FILE *stream)

[英]char *fgets(char *str, int n, FILE *stream)

我知道這個功能是如何工作的。 我知道stdin通常用作*stream 這是一個有趣的問題,但是還有其他函數可用於輸入而不是stdin嗎?

首先,你使用stdin不是*stream而是stream ,因為stdin被聲明為

FILE *stdin;

其次, stdin不是一個函數,而是一個對象——一個指向描述開放的不透明結構的指針; 或者顧名思義,一個打開的文件 stdin的特殊之處在於,它在程序中默認連接到交互式輸入,即您用鍵盤輸入的任何內容。

雖然stdin是在執行main之前很容易提供給程序的輸入流,但您可以使用fopen函數打開更多流:

FILE *a_file = fopen("myinput.txt", "r");

將打開進程當前工作目錄中的文件myinput.txt進行讀取,並返回一個指向描述字節流的結構的指針; 調用fgets(..., a_file); 現在將從頭開始讀取所述文件的連續行。

讀取流后必須使用fclose(a_stream);關閉fclose(a_stream);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM