网站建设厂家,专业软文发稿平台,电商网站建设哪家好,域名 网站 区别C语言中的文件操作 1、文件的打开
创建文件指针变量
File* pf;定义一个指向FILE类型数据的指针变量#xff0c;可以使pf指向某个文件的文件信息区#xff0c;通过文件指针变量就能够找到与它关联的文件
#xff08;1#xff09;文件的打开
使用fopen函数打开文件#…C语言中的文件操作 1、文件的打开
创建文件指针变量
File* pf;定义一个指向FILE类型数据的指针变量可以使pf指向某个文件的文件信息区通过文件指针变量就能够找到与它关联的文件
1文件的打开
使用fopen函数打开文件使用fclose函数关闭文件
打开函数的使用形式
FILE* fopenconst char* filename,const char* mode);//第一个参数是文件名第二个参数是打开的方式打开的方式有 完整的文件打开操作
#define _CRT_SECURE_NO_WARNINGS#include stdio.h
#include string.h
#include errno.h
int main() {FILE* pf fopen(text.txt, r);//这个文件就和代码在一个路劲下使用的是相对路径if (pf NULL) {printf(%s\n, strerror(errno));}//读文件//文件的关闭fclose(pf); pf NULL;return 0;
}如果想打开其他位置上的文件就需要加上绝对路径
比如这里我们想打开桌面上的文件
FILE* pf fopen(C:\\Users\\邓欣洋\\Desktop\\text.txt, r);//但是需要使用转义字符原本使用一个‘\’这里就需要两个‘\’2文件的读写
关于一个字符的读使用的函数为fputc()函数
#define _CRT_SECURE_NO_WARNINGS#include stdio.h
#include string.h
#include errno.h
int main() {FILE* pf fopen(text.txt, w);if (pf NULL) {printf(%s\n, strerror(errno));return 1;}//写文件fputc(g, pf);//写一个字符到文件里面//文件的关闭fclose(pf); pf NULL;return 0;
}关于文件的读: #define _CRT_SECURE_NO_WARNINGS#include stdio.h#include string.h#include errno.hint main() {FILE* pf fopen(text.txt, r);if (pf NULL) {printf(%s\n, strerror(errno));return 1;}//读文件char c fgetc(pf);printf(%c\n, c);//读一个字符到文件里面//文件的关闭fclose(pf); pf NULL;return 0;}写一行数据到文件里面 #define _CRT_SECURE_NO_WARNINGS#include stdio.h#include string.h#include errno.hint main() {FILE* pf fopen(text.txt, w);if (pf NULL) {printf(%s\n, strerror(errno));return 1;}//写文件fputs(hello world!!!, pf);//这是写一行数据到文件里面原来有的内容就会被现在的数据覆盖//如果在这里不想销毁之前的内容可以将方式改成a即//FILE* pf fopen(text.txt, a);//文件的关闭fclose(pf); pf NULL;return 0;}读一行数据并打印出来读的是什么 #define _CRT_SECURE_NO_WARNINGS#include stdio.h#include string.h#include errno.hint main() {FILE* pf fopen(text.txt, r);if (pf NULL) {printf(%s\n, strerror(errno));return 1;}//读文件char arr[10];fgets(arr,5,pf);//第一个参数是将文件中的数据读到那个地方里面第二个参数是读多少个字符第三个数据是从哪个文件里面读//文件的关闭fclose(pf); pf NULL;return 0;}格式化写数据到文件里面 #define _CRT_SECURE_NO_WARNINGS#include stdio.h#include string.h#include errno.hstruct S {char arr[10];int age;float grade;};int main() {struct S s { zhangsan,18,98.5 };FILE* pf fopen(text.txt, w);if (pf NULL) {printf(%s\n, strerror(errno));return 1;}//写数据fprintf(pf, %s %d %f, s.arr, s.age, s.grade);//文件的关闭fclose(pf); pf NULL;return 0;}格式化读数据 #define _CRT_SECURE_NO_WARNINGS#include stdio.h#include string.h#include errno.hstruct S {char arr[10];int age;float grade;};int main() {struct S s { 0 };FILE* pf fopen(text.txt, r);if (pf NULL) {printf(%s\n, strerror(errno));return 1;}//读数据fscanf(pf, %s %d %f, (s.arr), (s.age), (s.grade));printf(%s %d %f\n, s.arr, s.age, s.grade);//文件的关闭fclose(pf); pf NULL;return 0;}以上的函数是针对所有的输入和输出流
接下来的函数只针对文件流只能写到文件里面或者从文件里面读数据
3fwrite函数
以二进制的形式写进文件中
#define _CRT_SECURE_NO_WARNINGS#include stdio.h
#include string.h
#include errno.hstruct S {char arr[10];int age;float grade;
};
int main() {struct S s {zhangsan,20,85};//以二进制的形式写入文件FILE* pf fopen(text.txt, wb);if (pf NULL) {printf(%s\n, strerror(errno));return 1;}//以二进制的方式写fwrite(s, sizeof(struct S), 1, pf);//文件的关闭fclose(pf); pf NULL;return 0;
}4fread函数
以二进制的形式读数据
#define _CRT_SECURE_NO_WARNINGS#include stdio.h
#include string.h
#include errno.hstruct S {char arr[10];int age;float grade;
};
int main() {struct S s {0};//以二进制的形式读入文件FILE* pf fopen(text.txt, rb);if (pf NULL) {printf(%s\n, strerror(errno));return 1;}//以二进制的方式读fread(s, sizeof(struct S), 1, pf);//第一个参数是读到哪里去第二个参数是所读数据的大小第三个参数是要读多少个这样的数据第四个参数是从哪里读printf(%s %d %f\n, s.arr, s.age, s.grade);//文件的关闭fclose(pf); pf NULL;return 0;
}5sprintf和sscanf函数
sscanf是从一个字符串中转化成一个格式化的数据sprintf是把一个格式化的数据转化成字符串
#define _CRT_SECURE_NO_WARNINGS#include stdio.h
#include string.h
#include errno.hstruct S {char arr[10];int age;float grade;
};
int main() {struct S s {zhangsan,20,97};struct S tmp { 0 };char buf[100] { 0 };//把s中的格式化的数据转化成字符串bufsprintf(buf, %s %d %f, s.arr, s.age, s.grade);//这个buf里面就是zhangsan 20 97.00000是一个字符串//从字符串buf中获取一个格式化的数据到tmp中sscanf(buf, %s %d %f, tmp.arr, (tmp.age), (tmp.grade));return 0;
}