emi*_*ily 13 c stdin std fgets
我知道每个人都告诉我使用fgets而不是因为缓冲区溢出而得到的.但是,我对第三个参数感到有点困惑fgets()
.据我了解,fgets依赖于:
char * fgets ( char * str, int num, FILE * stream );
Run Code Online (Sandbox Code Playgroud)
char* str
是我的输入将存储在哪里的ptr.
num
是要读取的最大字符数.
但是什么FILE *stream
?如果我只是提示用户输入字符串(如句子),我应该输入" stdin
"吗?
我应该键入FILE *stdin
顶部,靠近main()
吗?
Car*_*rum 16
你是对的. stream
是一个FILE
结构的指针,就像从中返回的那样fopen
. stdin
,, stdout
和stderr
已经为您的程序定义,因此您可以直接使用它们,而不是自己打开或声明它们.
例如,您可以从标准输入中读取:
fgets(buffer, 10, stdin);
Run Code Online (Sandbox Code Playgroud)
或者从特定文件中:
FILE *f = fopen("filename.txt", "r");
fgets(buffer, 10, f);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
36058 次 |
最近记录: |