1.文件
文本文件 : 存储时,是将字符的ascii值存在磁盘中,取的时候将数值(ascii)翻译成对应的字符
二进制文件: 存的是二进制,取的是二进制
2.文件指针
当打开一个文件时,系统会返回一个结构体,这个结构体有此文件操作的所有信息
调用fopen时,系统返回这个结构体地址
FILE *p = fopen(“./a.txt”)
更多编程资料:huzi15209271798
3.打开文件
FILE *fp = fopen( “pathname”, 打开的方式 );
注意: 打开的选项
只有带r的选项,如果文件不存在,则不创建文件
带w选项的,打开时会清空文件
fopen的返回值: 如果成功返回FILE结构体地址,失败返回NULL
返回的文件流指针标识了打开的那个文件
4 fclose
fclose(FILE *fp);
功能: 关闭文件
参数: 文件流指针
5 vs中. 当前./相对路径问题
1 如果直接在vs中调试运行: 相对路径相对的是工程文件
2 如果手动运行,.exe文件.相对路径相对的是可执行文件
6 设备文件
stdin
stdout
stderr
7 fputc
功能: 写入一个字符到文件中
int fputc(int ch, FILE * stream);
功能:将ch转换为unsigned char后写入stream指定的文件中
参数:
ch:需要写入文件的字符
stream:文件指针
返回值:
成功:成功写入文件的字符
失败:返回-1
FILE *fp = fopen("./a.txt","w");
if (NULL == fp) //判断文件是否打开成功
{
perror("open");
return;
}
char buf[] = "hello";
int i = 0;
while (buf[i] != 0)
{
fputc(buf[i],fp);
i++;
}
8 fgetc 读取一个字符
#include <stdio.h>
int fgetc(FILE * stream);
功能:从stream指定的文件中读取一个字符
参数:
stream:文件指针
返回值:
成功:返回读取到的字符
失败:-1
9 fgets 从文件读取字符串
注意: fgets读取遇到\n结束
char * fgets(char * str, int size, FILE * stream);
功能:从stream指定的文件内读入字符,保存到str所指定的内存空间,直到出现换行字符、读到文件结尾或是已读了size - 1个字符为止,最后会自动加上字符 '\0' 作为字符串结束。
参数:
str:字符串
size:指定最大读取字符串的长度(size - 1)
stream:文件指针
返回值:
成功:成功读取的字符串
读到文件尾或出错: NULL
10 fputs 向文件写入字符串
#include <stdio.h>
int fputs(const char * str, FILE * stream);
功能:将str所指定的字符串写入到stream指定的文件中,字符串结束符 '\0' 不写入文件。
参数:
str:字符串
stream:文件指针
返回值:
成功:0
失败:-1