![](/img/trans.png)
[英]strShiftLeft(char* str, int n) keeps getting "zsh: bus error"
[英]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.