Joh*_*ode 220
在C中,"流"是一种抽象; 从程序的角度来看,它只是字节的生产者(输入流)或消费者(输出流).它可以对应于磁盘上的文件,管道,终端或某些其他设备(如打印机或tty).该FILE类型包含有关流的信息.通常,您不会FILE直接弄乱对象的内容,只需将指针传递给各种I/O例程即可.
有三个标准流:stdin是指向标准输入流stdout的指针,是指向标准输出流stderr的指针,是指向标准错误输出流的指针.在交互式会话中,三者通常会引用您的控制台,但您可以将它们重定向到指向其他文件或设备:
$ myprog < inputfile.dat > output.txt 2> errors.txt
Run Code Online (Sandbox Code Playgroud)
在此示例中,stdin现在指向inputfile.dat,stdout指向output.txt和stderr指向errors.txt.
fprintf 将格式化文本写入您指定的输出流.
printf相当于fprintf(stdout, ...)将格式化文本写入并写入标准输出流当前指向的位置.
sprintf将格式化文本写入数组char,而不是流.
Rub*_*bal 31
printf("format",args)用于将数据打印到标准输出上,标准输出通常是计算机监视器.
sprintf(char*,"format",args)就像printf.而是在标准输出(即监视器)上显示格式化字符串,它将格式化数据存储在char指针指向的字符串中(第一个参数).字符串位置是printf和sprint语法之间的唯一区别.
fprintf(FILE*fp,"format",args)再次像printf.这里不是在监视器上显示数据,或者将其保存在某个字符串中,而是将格式化数据保存在文件指针所指向的文件中,该文件指针用作fprintf的第一个参数.文件指针是printf语法的唯一补充.
如果将stdout文件用作fprintf中的第一个参数,则其工作被认为与printf的工作相同.
VGE*_*VGE 24
printf(...)相当于fprintf(stdout,...).
fprintf 用于输出流.
sprintf(buffer,...) 用于将字符串格式化为缓冲区.
注意还有vsprintf,vfprintf和vprintf