10-21 文件

a1>打开文件 FILE 是一个文件结构体数据类型
FILE *fp * 指针 文件指针变量 // FILE代表指针指向一个文件
FILE *fp =fopen(“”,“w”)
第一个参数是传文件的路径
第二个参数是打开文件的方式 r:读 w:写 a:追加
如果文件打开失败,这个fopen的返回值是NULL,否则返回的是文件的地址
if(fp==NULL)
{
//打印文件打开失败的原因
perror("fopen failes:");
return 0;
}
文件打开是失败原因
1)如果是以只读的方式打开,然而打开的文件不存在
2)cpu内存已满

如果以w的方式打开,文件不存在时会新建,如果文件存在,对这个文件内容进行格式化之后在进行写操作

2>对文件进行相关操作
fputc(‘a',fp); //字符写入函数

字符串输入到文件

char str[10]="hello";
fputs(str,fp);
fclose(fp);

从文件读出一行字符串,如果没有换行,就全读
char str[10];
fgets(str,sizeof(str),fp);
printf("str=%s",str);
fclose(fp);

读文件
FILE *fp=
char ch=fgetc(fp);

格式化输入到文件函数
fprintf(fp,"a=%d,b=%c\n",a,'c');
fclose(fp);

int test;
int ch;
fscanf(fp,"a=%d,b=%c\n",&test,&ch);

3>关闭文件
fclose(fp);

fwrite(&a,sizeof(int),1,fp);
1>FILE *fp

fread(&a,sizeof(int),1,fp);
printf("a=%d\n",a);

结构体变量读写
typedef struct Student
{
}

fseek(fp,1,SEEK_SET)
第二个参数相当于 位置
p指针移动到具体位置
第三个参数
SEEK_SET 文件头
SEEK
CUR p 指针的当前位置
SEEK
END 文件尾
第二个参数
根据第三个餐胡决定,
如果SEEL_SET 用正数
如果是SEEK_CUR 可以是正数也可以是负数
如果是SEEK_END 一般是负数

宏定义
//define 实际上就是字符串的替换

define COUNT 10

                                    printf();

格式
1>带宏体的宏

define 宏名 宏体

2>不带宏体的宏

define 宏名

3>不带参数的宏函数

define COUNT printf(“hello\n”);

4>带参的宏函数

define max (a,b) a>b?a:b;

5> define的扩展

#define get(type,fynctionName)\ 
type get##functionName(type a,type b)\
{\
    return a>b?a:b;\
}
get(int,IntMax)
get(float,FloatMax)

链表

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容