当前位置: 代码迷 >> 综合 >> 2021-11-29文件的读写
  详细解决方案

2021-11-29文件的读写

热度:13   发布时间:2023-11-21 11:46:22.0

文件的读写分为字符读写和行读写

        字符读写

        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;
}