C语言文件操作复习
Posted 临风而眠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言文件操作复习相关的知识,希望对你有一定的参考价值。
C语言文件操作复习
一.打开文件
fopen()
//两个都是字符指针
//前者是路径 后者是打开的模式
FILE*fopen(const char *path,const char*mode)
路径注意点
一般复制过来的路径都是\\
,但是C语言中\\
是转义字符的作用,所以要用\\\\
或/
模式
对文本文件
模式 | 解释 |
---|---|
“r” | 只读模式,文件必须存在,不存在就报错 |
“r+” | 读写方式,文件必须存在,不存在就报错 |
“w” | 只写方式,文件不存在就创建新的文件 |
“w+” | 读写方式,文件不存在就创建新的文件 |
“a” | 追加(写),文件存在就从文件末尾开始写,不存在就新建文件 |
“a+” | 追加(读写),文件存在就从文件末尾开始写,不存在就新建文件 |
返回值
- 成功:FILE指针
- 失败:NULL
先试一试基本的"r"
#include<stdio.h>
#include<stdlib.h>//文件操作函数要用到
int main()
{
FILE*fp; //定义一个文件指针
//打开一个文件
//绝对路径
fp=fopen("C:\\\\Users\\\\86171\\\\Desktop\\\\TMP.txt","r");
if(fp == NULL)
{
printf("打开失败");
}
else
{
printf("打开成功");
}
fclose(fp);//关闭文件
return 0;
}
fp指向文件地址
二.读写操作
按字符读写
读
从文件中读取一个字符
fgetc: fgetc(FILE *stream);
-
功能:从指定文件流中获得字符
-
参数 *stream 指定的文件指针
-
返回值
-
成功:对应字符的ascii值
-
失败
-
EOF(文件结束)
文件的结束标志就是EOF,其实就是-1
-
error(错误)
-
都是-1
-
-
把那个文件和.c
放到同一路径下面,就不用写绝对路径了
#include<stdio.h>
#include<stdlib.h>//文件操作函数要用到
int main()
{
FILE*fp; //定义一个文件指针
//打开一个文件
char ch=0;
fp=fopen("TMP.txt","r");
if(fp == NULL)
{
printf("打开失败\\n");
}
else
{
printf("打开成功\\n");
//从文件中读取一个字符
ch=fgetc(fp);
printf("%c\\n",ch);
fclose(fp);//关闭文件
}
return 0;
}
运行结果:
读取文件的每个字符
#include<stdio.h>
#include<stdlib.h>//文件操作函数要用到
int main()
{
FILE*fp; //定义一个文件指针
//打开一个文件
char ch=0;
fp=fopen("TMP.txt","r+");
if(fp == NULL)
{
printf("打开失败\\n");
}
else
{
printf("打开成功\\n");
//从文件中读取一个字符
ch=fgetc(fp);
while(!feof(fp))
{
printf("%c",ch);
ch=fgetc(fp);
}
// printf("%c\\n",ch);
fclose(fp);//关闭文件
}
return 0;
}
写
把mode改成"r+"
#include<stdio.h>
#include<stdlib.h>//文件操作函数要用到
int main()
{
FILE*fp; //定义一个文件指针
//打开一个文件
char ch=0;
fp=fopen("TMP.txt","r+");
if(fp == NULL)
{
printf("打开失败\\n");
}
else
{
printf("打开成功\\n");
//从文件中读取一个字符
fputc('A',fp);
fclose(fp);//关闭文件
}
return 0;
}
第一个字符被覆盖了
以上是关于C语言文件操作复习的主要内容,如果未能解决你的问题,请参考以下文章