Linux编程-标准IO(3)
2014-12-20 13:51
337 查看
读写定位及格式化输出
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能做的更好
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能做的更好
相关文章推荐
- Linux编程-标准IO(2)
- Linux应用编程基础--(1)标准IO
- Linux编程-标准IO(4)-临时文件
- Linux系统编程:标准IO操作--索引对应路径下的文件
- 第一章Linux标准IO编程
- Linux系统编程:标准IO操作--索引对应路径下的文件
- linux系统编程之基础必备(二):C 标准IO 库函数与Unbuffered IO函数
- 二、linux IO 编程---系统调用和POSIX标准和标准IO
- 2.Linux应用编程——标准IO
- linux编程-标准IO
- 【linux草鞋应用编程系列】_1_ 开篇_系统调用IO接口与标准IO接口
- 专题3 标准IO编程
- 标准C语言IO与Unix/Linux IO API比较
- (转)Linux IO多路复用之epoll网络编程
- 淘宝核心系统团队博客 | linux异步IO编程实例分析
- linux 内核驱动编程 简单例子 与_IO, _IOR, _IOW, _IOWR 宏解析
- linux 内核驱动编程 简单例子 与_IO, _IOR, _IOW, _IOWR 宏解析
- linux下的标准IO总结
- Linux文件IO编程
- Linux环境高级编程:文件IO