先来了解几个函数:
fopen,这个函数有2个参数分别为(字符串也就是要记得打引号)路径,和(字符串)操作模式,返回值为FILE类型的指针,也就是一个指向文件信息的结构的指针(因为在文件操作里面,需要这个结构指针才可以对该文件操作):
先来介绍两个简单的操作模式r模式和w模式,r模式为只读模式,就是只读取文件信息不对文件操作,w为只写模式,也就是如果前面的路径里的文件存在就清空文件内容,如果不存在就创建新文件;
再来介绍一下路径:包括文件的相对路径和绝对路径,首先是相对路径:也就是在当前目录下创建的文件,记得打引号,先给文件命名,后面的点和后缀都是表示文件类型;比如“data.text”表示一个名为data的文本文件;而绝对路径就是哪个盘里的什么里的什么,比如:写成“D:\:/rels/.rels”表示D:\盘下的rels文件下的rels类型文件
这里举个例子:首先,我在这个盘下的文件文件夹里面创建一个文本名为ww ;然后在里面输入1234567,之后这样用
且先不说其他的,这个直接报错,为什么呢?这里可以这么认为在编译器看来却不是这样的,在文件中,它的分隔符是/,但是在电脑的地址显示一般是\所以,在c语言里面就有了两种形态的分隔符:一种是\\另一种是/,其实这样容易混,所以,这里有一个小技巧,由于我们一般//表示注释,如果,但是分隔符中也有两个斜杠的,那不就是\\了吗?
对了,有一点要注意,在文件里面如果用的绝对路径,而且有中文的话,就要记得修改vs里面的这个:
点项目,然后到这里修改成使用多字节字符集,一定要记得按确定,至于为什么,我目前也不是很清楚,先改就完事了;
所以,如果填的是某个文本的绝对路径,可以自己写,也可以找到它的属性里面的绝对路径:然后复制,最后再将那些\都加一个\或者变成一个/;
比如:示范一下
这里就写一种:
#include<stdio.h>
int main()
{
FILE* fp = fopen("D:\\文件\\ww.txt","r");
if (!fp)return -1;
char bu[10];
while (fgets(bu, 10, fp) != NULL)
{
printf("%s", bu);
}
fclose(fp);
return 0;
}
先别关注下面的代码,下面的代码是用来读取文件并且打印到屏幕上的;这里只是用来展示这样写的路径;
对了,这里随着你文件夹的命名,或者文本的命名,这里里面代码也要随着修改哦;
然后再来介绍fprintf函数,它可以和printf函数作比较,前者的参数就是比后者多了一个文件指针,其他的一致,但是要注意的是,这个函数打印在文件里;也就是相当于在修改文件;这里有疑问了,刚刚上面说的操作模式,如果是只读模式的话,可以对他进行修改吗?也就是打印;
来看这段代码:
#include<stdio.h>
int main()
{
FILE* fp = fopen("D:\\文件\\ww.txt","r");
if (!fp)return -1;
//char bu[10];
/*while (fgets(bu, 10, fp) != NULL)
{
printf("%s", bu);
}*/
fprintf(fp, "1234567");
fclose(fp);
return 0;
}
我先是把刚刚的文本清空了,再执行这段代码;这时候编译器没报错,但是,没有执行打印在文本的操作,应为这时候设置的模式为只读,这时候如果改为”w“模式,就可以打印;
还有一个函数是关闭打开的文件也就是fclose它的参数就一个,也就是文件类型的指针;如果在函数里面不用这个文件了,可以先将它关闭,虽然在程序结束后他会自动关闭,但是,在程序结束前,关闭所有文件是良好的编程习惯;上面的代码就可以看见它的身影;
-----------------------------------------------------------------------------------------------------------------------------------------
每个人都是小孩:你也是要长大的小朋友 ,一定要撑着, 别倒下去。