Linux编程-标准IO(3)

读写定位及格式化输出
1. 读写定位函数
   int fseek(FILE *stream, long offset, int whence); 设置文件读写位置
  long ftell(FILE *stream); 获取文件读写位置
  void rewind(FILE *stream); 回到文件开头
  
  可处理文件长度大于long
  int fseeko(FILE *stream, off_t offset, int whence);
  off_t ftello(FILE *stream);

  IOS C标准,支持跨平台
  int fgetpos(FILE *stream, fpos_t *pos); 设置文件读写位置
  int fsetpos(FILE *stream, fpos_t *pos); 获取文件读写位位置


2. 格式化输入输出函数
   格式化输入:
    #include <stdio.h>
    int scanf(const char *format, ...); //从标准IO中输入
    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);

(2)格式化输出
#include <stdio.h>
int printf(const char *format, ...);
int fprintf(FILE *stream, 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 vsprintf(char *str, const char *format, va_list ap);
int vsnprintf(char *str, size_t size, const char *format, va_list ap);

3. 测试用例
#include <stdio.h>
#include "scanfTest.h"


void scanTest()
{
int iD1 = 0, iD2 = 0, iD3 = 0;
scanf("%d", &iD1, &iD2, &iD3);
printf("data: %d,%d,%d\n", iD1, iD2, iD3);


char szBuf[100] = {0};
sscanf("123456", "%s", szBuf);
printf("data: %s\n", szBuf);
}

输出:
1
data: 1,0,0
data: 123456
总结:
(1)scanf一次只能输入一个
(2)sscanf 能做到的,sprintf能做的更好
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值