linux之输入输出流

输出流:

源代码:从未知参数读取,然后输入到流中,从后向前
      #include <stdio.h>
      int printf(const char *format, ...);
      int fprintf(FILE *stream, const char *format, ...);
      int dprintf(int fd, const char *format, ...);
      int sprintf(char *str, const char *format, ...);
      int snprintf(char *str, size_t size, const char *format, ...);
      #include <stdarg.h>
      int vprintf(const char *format, va_list ap);
      int vfprintf(FILE *stream, const char *format, va_list ap);
      int vdprintf(int fd, const char *format, va_list ap);
      int vsprintf(char *str, const char *format, va_list ap);
      int vsnprintf(char *str, size_t size, const char *format, va_list ap);	

描述:
The functions printf() and vprintf() write output to stdout, the standard output stream; fprintf() and vfprintf() write output to the given output stream; sprintf(), snprintf(), vsprintf() and vsnprintf() write to the character string str.
printf()、vprintf()函数:写入标准输出流,arg:可变参数列表的对象。这应被 中定义的 va_start 宏初始化

      #include <stdarg.h>  		//man 3 stdarg
      void va_start(va_list ap, last);
      type va_arg(va_list ap, type);
      void va_end(va_list ap);
      void va_copy(va_list dest, va_list src);

fprintf()、vfprintf()函数:写入指定的输出流
sprintf()、snprintf()、vsprintf()函数:写入指定字符串,可用于字符串的数据组装
dprintf()函数:与sprintf()函数作用一样,不过一个是用文件名(含路径),一个是用文件描述符fp
snprintf()、vsnprintf()函数:size_t 等价 int ,其size需要考虑字符串末尾的’\0’
注意:
C99和POSIX.1-2001指定,如果调用sprintf()、snprintf()、vsprintf()或vsnprintf()将导致重叠的对象之间发生复制(例如,如果目标字符串数组和提供的输入参数之一引用同一个缓冲区),则结果为未定义。
函数 vprintf()、vfprintf()、vdprintf()、vsprintf()、vsnprintf()等价的函数分别是printf()、fprintf()、dprintf()、sprintf()、snprintf(),只不过它们是用va_list而不是可变数量的参数调用的。这些函数不调用va_end宏。因为它们调用了va_arg宏,所以ap的值在调用之后是未定义的

输入流:

源代码:从流中读取,然后输入,从前向后
      #include <stdio.h>
      int scanf(const char *format, ...);
      int fscanf(FILE *stream, const char *format, ...);
      int sscanf(const char *str, const char *format, ...);
      #include <stdarg.h>
      int vscanf(const char *format, va_list ap);
      int vsscanf(const char *str, const char *format, va_list ap);
      int vfscanf(FILE *stream, const char *format, va_list ap);

描述:
The scanf() function reads input from the standard input stream stdin, fscanf() reads input from the stream pointer stream, and sscanf() reads its input from the character string pointed to by str.
scanf()、vscanf()函数:从标准输入流中读取数据,然后写入到后面的参数(…)中,参数ap同上
fscanf()、vfscanf()函数:从指定的文件流中读取数据,然后输入到后面的参数(…)中
sscanf()、vsscanf()函数:从指定的字符串中读取数据,然后输入到后面的参数(…)中

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值