文件的读写分为字符读写和行读写
字符读写
fgetc(文件指针);
这个函数的意思是读取一个指定文件中的字符,他的返回值就是一个字符,我们可以用 字符变量=fgets的方式为字符变量赋值
值得注意的是,函数的读取是读取光标处的字符,而刚开始光标就处于文件中的第一个 字符,当使用过一次fgets函数后,光标会自动换到下一个字符,不需要再进行变量的自增操 作。
#include<stdio.h>
int main()
{
FILE *fp=fopen("C:/Users/DELL/Desktop/a.txt","r");
if(fp==NULL)
{
return -1;
}
char ch;
while((ch=fgetc(fp))!=EOF)
{
printf("%c",ch);
}
fclose(fp);
return 0;
}
我们可以通过循环来读出文件中的值
这里我们让循环结束的方法是使用EOF,关于EOF的内容我前面的文章有专门讲,可以去看看
还有一种方法也是可以的,就是feof函数,我们作为拓展来讲。
feof(文件指针)
返回值:如果到文件的结尾,则返回非0的值
如果没有到文件的结尾,则返回0
fputc(所要放入的字符变量,指针文件)
这个函数就是写入函数,没什么好说的,就是注意创建指针文件的时候不要使用r
行读写
fgets(所要保存读出内容的地址,需要读出的大小,文件指针)
行读出函数,可以读出一行的内容,如果限制了需要读出的大小,那么下次读的时候还会读当前行
值得注意的是,这个函数会再最后预留一个‘\0’所以我们要计算好空间大小
fputs(需要输入的变量,文件指针)
行输入函数,可以将字符串输入到文件中
记着多次使用指针去输入的时候要把指针清空防止污染下次输入
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int i=0;
FILE *fp=fopen("C:/Users/DELL/Desktop/a.txt","w");
if(fp==NULL)
{
return -1;
}
char* p=(char*)malloc(sizeof(char)*100);
while(1)
{
memset(p,0,100);
if(i==2)
{
break;
}
fgets(p,100,stdin);
fputs(p,fp);
i++;
}
fclose(fp);
return 0;
}