Android ndk中文件处理

2019-07-05  本文已影响0人  众少成多积小致巨

1、概述

原生应用层序可以同标准c库提供Standard File I/O函数来与文件系统交互

文件操作库函数有:(C中返回值为0表示运行正常,非0运行错误;个人写的时候最好准守)

      文件的打开操作 fopen 打开一个文件

      文件的关闭操作 fclose 关闭一个文件

      文件的读写操作 fgetc 从文件中读取一个字符

      fputc 写一个字符到文件中去

      fgets 从文件中读取一个字符串

      fputs 写一个字符串到文件中去

      fprintf 往文件中写格式化数据

      fscanf 格式化读取文件中数据

      fread 以二进制形式读取文件中的数据

      fwrite 以二进制形式写数据到文件中去

                fflush 刷新缓存区

      文件状态检查函数 feof 文件结束

      ferror 文件读/写出错

      clearerr 清除文件错误标志

      ftell 了解文件指针的当前位置

      文件定位函数 rewind 反绕

      fseek 随机定位

常量 EOF:表示执行出错

2、使用

2.1 引用

extern "C" {

#include <stdio.h>

}

2.2 打开流

FILE* fopen(const char* path, const char* mode)

path:文件路径

mode: a) r 只读方式打开现有文件,b) w 只写方式打开现有文件,c) a追加方式,如果文件不存在,打开一个新文件,d)r+ 读写模式打开文件 ;e) w+ 读写模式打开文件,文件若存在,内容清空;f) a+ 打开文件进行读写和追加

如果以r+,w+,a+模式打开文件,读写转换之前,先使用fflush方法刷新缓冲区

2.3 写入流

size_t fwrite(const void* buf, size_t size, size_t count, FILE* fp) 从缓存区buf向给定流fp中写入count个大小为size的数据,返回实际写入个数,正常应该等于count个数

int fputs(const char* s, FILE* fp);

int fputc(int ch, FILE* fp);

int fprintf(FILE* fp, const char* fmt, ...) 格式化写入

常用格式化符号

int fflush(FILE* fp)  刷新缓存区

2.4 流的读取

size_t fread(void* buf, size_t size, size_t count, FILE* fp)从流fp中读取count个大小为size的数据到缓存区buf中;返回实际读取个数

int fgetc(FILE* fp);

char* fgets(char* buf, int size, FILE* fp) 从流中流中最多读取size-1个数据(另外一个换行符),并将内容放到buffer中

int fscanf(FILE* fp, const char* fmt, ...)

int feof(FILE* fp);如果已经设置了文件结束指示符,可以检查文件是否到达结尾,如果返回为0,即还有更多数据

2.5 位置搜索

int fseek(FILE* fp, long offset, int whence)

fp:流

offset:偏移量,正数向后,负数向前

whence:变异量相对参考位置; a) SEEK_SET 流的开头;b)SEEK_CUR 流的当前位置;c)SEEK_END流的结尾;’

2.6 错误检查

int ferror(FILE* fp); 如果之前的操作中发生错误,可以用此函数来进行错误检查

2.7 关闭流

int fclose(FILE* __fp);关闭流;任何缓存的输出都会写入流,任何缓存的输入都会丢弃

上一篇 下一篇

猜你喜欢

热点阅读