标签搜索

目 录CONTENT

文章目录

区分多种类型的输入输出.md

小小城
2021-08-22 / 0 评论 / 0 点赞 / 3 阅读 / 1,841 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-05-02,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

区分多种类型的输入输出

@[toc]

1.printf函数

这个就不说了

2.sprintf函数

 int sprintf(char *str, const char *format, ...);
    
  • 作用:是把格式化字符串输出到指定字符串,所以参数比printf多了个char * ,那就是目标字符串的地址
  • 头文件:stdio.h
  • 函数功能:格式化字符串,将格式化的数据写入字符串中
  • 参数:(1)str:是char类型的指针,指向写入的字符串指针;
  • 参数:(2)format:格式化字符串,即在程序中想要的格式;
  • 参数:(3)argument:可选参数,可以为任意类型的数据
  • 函数返回值:buffer指向的字符串的长度;

3.fprintf函数

   int fprintf(FILE *stream, const char *format, ...);
      
  • 是把格式化字符串输出到指定文件中,所以参数比printf多了个文件指针File * ,那是目标文件的文件描述符(文件流指针)
  • stream-- 这是指向 FILE 对象的指针,该 FILE 对象标识了流
  • format-- 这是 C 字符串,包含了要被写入到流 stream 中的文本。它可以包含嵌入的 format 标签,format 标签可被随后的附加参数中指定的值替换,并按需求进行格式化。
  • format 标签属性是%[flags][width][.precision][length]specifier
    [argument]:附加参数列表
  • fprintf( )会根据参数format 字符串来转换并格式化数据,然后将结果输出到参数stream
    指定的文件中,直到出现字符串结束('\0')为止

4.snprintf函数

  int snprintf(char *str, size_t size, const char *format, ...);
  • 将可变个参数(...)按照format格式化成字符串,然后将其复制到str中
  • 如果格式化后的字符串长度 < size,则将此字符串全部复制到str中,并给其后添加一个字符串结束符('\0');
  • 如果格式化后的字符串长度 >= size,则只将其中的(size-1)个字符复制到str中,并给其后添加一个字符串结束符('\0'),返回值为欲写入的字符串长度
  • 函数返回值
    若成功则返回预写入的字符串长度,若出错则返回负值。
    与snprintf的返回值不同,sprintf的返回值是成功写入的字符串长度,此处需要谨慎处理。

在这里插入图片描述

5.write函数

  • 函数定义:
ssize_t write (int fd, const void * buf, size_t count); 
  • 函数说明:write()会把参数buf所指的内存写入count个字节到参数放到所指的文件内。
  • 返回值:如果顺利write()会返回实际写入的字节数。当有错误发生时则返回-1,错误代码存入errno中。

6.read函数

ssize_t read(int fd, void * buf, size_t count);
  • 函数说明:read()会把参数fd所指的文件传送count 个字节到buf 指针所指的内存中。
  • 返回值:返回值为实际读取到的字节数, 如果返回0, 表示已到达文件尾或是无可读取的数据。若参数count 为0, 则read()不会有作用并返回0。

7.fread函数

size_t fread(void*buffer,size_t size,size_t count,FILE*stream);
  • buffer: 是读取的数据存放的内存的指针,
    (可以是数组,也可以是新开辟的空间)
    ps: 是一个指向用于保存数据的内存位置的指针(为指向缓冲区
    保存或读取的数据或者是用于接收数据的内存地址)

  • size: 是每次读取的字节数

  • count: 是读取的次数

  • stream: 是要读取的文件的指针
    ps: 是数据读取的流(输入流)

  • 返回值
    成功:是实际读取的元素(并非字节)数目
    失败:返回0
    ps:如果输入过程中遇到了文件尾或者输出过程中出现了错误,这个数字可能比请求的元素数目要小

8.fwrite函数

size_t fwrite(void*buffer,size_ size,size_t count,FILE*stream)
  • buffer:是一个指向用于保存数据的内存位置的指针
    (是一个指针,对于fwrite来说,是要获取数据的地址)
  • size: 是每次读取的字节数
  • count: 是读取的次数
  • stream: 是数据写入的流(目标指针的文件)
  • 返回值:
    是实际写入的元素(并非字节)数目
    ps:如果输入过程中遇到了文件尾或者输出过程中出现了失误,这个数字可能比请求的元素数目要小
0

评论区