1.如何向文件中写入信息?
1.打开文件
2.写入数据
3.关闭文件
2.如何从文件中读取信息?
1.打开文件
2.读取数据
3.关闭文件
int main(int argc, const char *argv[])
int main(int argc, const char **argv)
main函数传参
int fputs(const char *s, FILE *stream);
功能:
将字符串写入到流中
参数:
s:字符串空间首地址
stream:文件流指针
返回值:
成功返回非负数
失败返回EOF(-1)
char *fgets(char *s, int size, FILE *stream);
功能:
从流中读取一段字符(遇到\n会立即停止)
参数:
s:存放字符串的空间的首地址
size:想要读取的字节数
stream:文件流指针
返回值:
成功返回存放字符串空间的首地址
失败或读到文件末尾返回NULL
用法:
接收一行字符串
3.普通文件的划分
1.ASCII码文件:
程序、代码、文档
文件中的内容均为能够在界面显示的字符
2.二进制文件:
图片、音频、视频、压缩包
文件中的内容可以是不能在界面上显示的字节编码
ASCII码文件是特殊的二进制文件
fgetc/fputc fprintf/fscanf fgets/fputs ->ASCII码文件
fread/fwrite ->二进制文件
4.从终端输入一个单词,获得该单词的含义
fwrite
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)
功能:
向文件写入nmemb个对象,每个对象size个字节大小,存放在ptr指向的空间中
参数:
ptr:存放数据空间的首地址
size:写入对象的字节数
nmemb:写入对象的个数
stream:文件流指针
返回值:
成功返回实际写入对象的个数
fread
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
功能:
从流中读取nmemb个对象,每个对象size个字节大小,存放在ptr指向的空间中
参数:
ptr:存放数据空间的首地址
size:读取对象的字节数
nmemb:读取对象的个数
stream:文件流指针
返回值:
成功返回实际读取对象的个数
设置流的偏移量:
1.fseek
int fseek(FILE *stream, long offset, int whence);
功能:
重新设置流的偏移量
参数:
stream:文件流指针
offset:
偏移量
>0 向后偏移
<0 向前偏移
whence:
SEEK_SET 文件开头
SEEK_CUR 当前位置
SEEK_END 文件末尾
返回值:
成功返回0
失败返回-1
2.rewind
void rewind(FILE *stream);
将流重定位到开头
等价于
fseek(FILE *stream, 0, SEEK_SET)
3.ftell
long ftell(FILE *stream);
获得流的偏移量