精华内容
下载资源
问答
  • 2021-08-09 11:20:54

    前言

    文件的读取及写入的理解及介绍


    一、文件的分类

    文本文件: 存储的是ASCII码的二进制(人能开的懂)
    二进制文件: 存储的是数据的补码

    文件IO
    FILE *fopen(const char *path, const char *mode);
    功能:打开文件或创建文件
    path:文件路径
    mode:打开的模式
    r :以只读权限打开文件,如果文件不存在则打开失败
    r+ :在r的基础上增加写权限
    w :以只写权限打开文件,如果文件不存在则创建,如果文件存在则清空
    w+ :在w的基础上增加写权限
    a :以只写权限打开文件,如果文件不存在则创建,如果文件存在则不清空,新写入的数据在文件末尾
    a+ :在a的基础上增加读权限

    以上方式以文本形式操作文件,在它们基础上加b表示以二进制方式操作文件

    返回值:结构指针,也称为文件指针,不需要关心它的成员,只需要直到它是操作文件的凭证,如果值是NULL表示文件操作失败

    二、二进制方式读写文件

    size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream);
    功能:把内存中的数据写入到文件中
    ptr:内存首地址
    size:一次写入多少个字节
    nmemb:写入多少次
    stream:文件指针,fopen的返回值
    返回值:成功写入的次数:

    size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
    功能:从文件中读取数据到内存中
    ptr:存储从文件中读取的数据内存首地址
    size :一次读取的字节数
    nmemb:读取多少次
    stream :文件指针,fopen的返回值
    返回值:成功读取到的次数

    三、文本方式读写文件

    int fprintf(FILE *stream, const char *format, …);
    功能:以文本形式写入数据到文件中
    stream:要写入的文件
    format:占位符和提示信息
    …:变量名和列表
    返回值:成功写入的字节数

    int fscanf(FILE *stream, const char *format, …);
    功能:从文件中读取数据到变量中
    stream:要读取的文件指针
    format:占位符
    …变量地址列表
    返回值:成功读取到的变量个数

    int fclose(FILE *fp);
    功能:关闭文件

    文件的随机读写:
    文件的位置指针:
    每一个打开的文件都有一个指针记录着操作的位置,它会随着读写函数的执行而移动,以r、r+、w、w+模式打开的文件位置指针在开头,以a、a+打开文件位置指针在文件的末尾

    如果想要随机读写文件的任意位置的数据,只需要手动设置文件的位置指针即可
    int fseek(FILE *stream, long offset, int whence);
    功能:设置文件的位置指针
    stream:要设置的文件
    offset:偏移值
    whence:基础位置
    SEEK_SET:文件的开头
    SEEK_CUR:当前位置
    SEEK_END:文件末尾
    返回值:设置成功返回0,失败返回1

    void(FILE *stream);
    功能:把文件位置指针设置到开头

    long ftell(FILE *stream);
    功能:获取文件位置指针的位置
    返回值:第几个字节

    int feof(FILE *stream);
    功能:检查文件位置指针是否到达末尾
    返回值:非0 说明到达文件末尾

    char *fgets(char *s, int size, FILE *stream);
    功能:从文件中读取一行字符串

    int fputs(const char *s, FILE *stream);
    功能:写入一个字符串到文件中,自动在末尾添加\n
    返回值:成功谢图的字符个数

    int remove(const char *pathname);
    功能:删除文件
    返回值:成功返回0 失败返回1

    int rename(const char *oldpath, const char *newpath);
    功能:重命名文件
    返回值:成功返回0 失败返回1

    四、main函数的参数

    是为了获取命令行附加的参数
    argc 代表参数的个数
    argv 每个字符串参数的首地址
    注意:./a.out一定是第一个参数


    总结

    以上,有错误,还请指正

    更多相关内容
  • c语言文件读取和写入

    千次阅读 2021-05-21 09:54:56
    文件打开类型:文件打开输出就用:1 #include 23 int main()4 {5 FILE *fp = NULL;67 fp = fopen("/tmp/test.txt", "w+"); //第一个逗号前是文件位置。逗号之后是打开文件方式8 fprintf(fp, "This is testing for ...

    文件打开类型:

    f8f02f27d5819cf8d778b3d8f7bb5c0f.png

    文件打开输出就用:

    1 #include

    2

    3 int main()

    4 {

    5 FILE *fp = NULL;

    6

    7 fp = fopen("/tmp/test.txt", "w+"); //第一个逗号前是文件位置。逗号之后是打开文件方式

    8 fprintf(fp, "This is testing for fprintf...\n"); //逗号之前是一个指针,表明往里面输入。逗号之后fprintf是往文件里面输入

    9 fputs("This is testing for fputs...\n", fp);

    10 fclose(fp); //记得用完关闭文件

    11 }

    文件打开读取:

    1 #include

    2

    3 int main()

    4 {

    5 FILE *fp = NULL;

    6 char buff[255];

    7

    8 fp = fopen("/tmp/test.txt", "r");

    9 fscanf(fp, "%s", buff); //写入的时候和平常没有区别,还是只有字符串变量前不加‘&’,其他int、double等类型前都要加‘&’符号

    10 printf("1: %s\n", buff );

    11

    12 fgets(buff, 255, (FILE*)fp); //scanf遇到空格就会断开,gets会读取空格,遇到换行就结束

    13 printf("2: %s\n", buff ); //255是限制最大读取内容长度

    14

    15 fgets(buff, 255, (FILE*)fp);

    16 printf("3: %s\n", buff );

    17 fclose(fp);

    18

    19 }

    文件读去和写入:

    文件判断是否结尾要用feof()函数

    1 #include

    2 int main()

    3 {

    4 FILE *fp = NULL;

    5 double buff;

    6 double s;

    7 int w;

    8 scanf("%lf",&s);

    9 w=s;

    10 fp = fopen("coursese.txt", "w");

    11 fprintf(fp,"%lf %lf %d",s,s,w); //这个%d后面不能加'\n',因为在文件中虽然一行什么东西都没有但是这一行确实存在,那么就不会

    12 fclose(fp); //遇到文件结束标志。不仅换行不能交,空格也不能交

    13 //即fprintf(fp,"%lf %lf %d ",s,s,w);、fprintf(fp,"%lf %lf %d ",s,s,w); 这两种形式都错

    14 fp = fopen("coursese.txt", "r");

    15 while(1){

    16 if(feof(fp)) break;

    17 fscanf(fp, "%lf%lf%d", &buff,&s,&w);

    18 printf("%lf %lf %d\n",buff,s,w);

    19 }

    20 fclose(fp);

    21 }

    加上%s也可以:

    1 #include

    2 int main()

    3 {

    4 FILE *fp = NULL;

    5 double buff;

    6 double s;

    7 int w;

    8 char ss[55];

    9 scanf("%lf",&s);

    10 scanf("%s",ss);

    11 w=s;

    12 fp = fopen("coursese.txt", "w");

    13 fprintf(fp,"%lf %lf %d %s",s,s,w,ss); //这个%d后面不能加'\n',因为在文件中虽然一行什么东西都没有但是这一行确实存在,那么就不会

    14 fclose(fp); //遇到文件结束标志。不仅换行不能交,空格也不能交

    15 //即fprintf(fp,"%lf %lf %d ",s,s,w);、fprintf(fp,"%lf %lf %d ",s,s,w); 这两种形式都错

    16 fp = fopen("coursese.txt", "r");

    17 while(1){

    18 if(feof(fp)) break;

    19 fscanf(fp, "%lf%lf%d%s", &buff,&s,&w,ss);

    20 printf("%lf %lf %d %s\n",buff,s,w,ss);

    21 }

    22 fclose(fp);

    23 }

    还有一种判断文件结束方式:fgetc()

    但是这个函数相当于getchar(),它会在文件中吸取一个字符,这样的话文件指针就会向后移动一位,从而导致拿出来的时候数据和进去的时候不一样

    代码:

    1 #include

    2 int main()

    3 {

    4 FILE *fp = NULL;

    5 double buff;

    6 double s;

    7 int w;

    8 char ss[55];

    9 scanf("%lf",&s);

    10 scanf("%s",ss);

    11 w=s;

    12 fp = fopen("coursese.txt", "w");

    13 fprintf(fp,"%lf %lf %d %s",s,s,w,ss);

    14 fclose(fp);

    15 fp = fopen("coursese.txt", "r");

    16

    17 char ch;

    18 while(1){

    19 ch=fgetc(fp);

    20 if(ch==EOF) break;

    21 fscanf(fp, "%lf%lf%d%s", &buff,&s,&w,ss);

    22 printf("%lf %lf %d %s\n",buff,s,w,ss);

    23 }

    24 fclose(fp);

    25 }

    考虑到它判断文件的方式,我们可以输入的时候在每一条数据前面多加一个空格,来充当那个fgetc吸收的无用字符

    代码:

    1 #include

    2 int main()

    3 {

    4 FILE *fp = NULL;

    5 double buff;

    6 double s;

    7 int w;

    8 char ss[55];

    9 scanf("%lf",&s);

    10 scanf("%s",ss);

    11 w=s;

    12 fp = fopen("coursese.txt", "w");

    13 fprintf(fp," %lf %lf %d %s",s,s,w,ss); //前面多加了一个空格。也可以加其他

    14 fclose(fp);

    15 fp = fopen("coursese.txt", "r");

    16

    17 char ch;

    18 while(1){

    19 ch=fgetc(fp);

    20 if(ch==EOF) break;

    21 fscanf(fp, "%lf%lf%d%s", &buff,&s,&w,ss);

    22 printf("%lf %lf %d %s\n",buff,s,w,ss);

    23 }

    24 fclose(fp);

    25 }

    二进制读写可以看菜鸟教程

    标签:fp,lf,读取,ss,写入,int,语言,fprintf,buff

    来源: https://www.cnblogs.com/kongbursi-2292702937/p/11724443.html

    展开全文
  • C语言read()函数:读文件函数(由已打开的文件读取数据) 头文件: #include 定义函数: ssize_t read(int fd, void * buf, size_t count); 函数说明:read()会把参数fd 所指的文件传送count 个字节到buf 指针所...
  • C语言读取和写入dat文件 注意路径 简单明了 仅供参考
  • C语言文件读取和写入。针对dat文件的读写。 注意文件路径。 程序简单明了 供参考
  • C语言文件读取和写入

    万次阅读 2019-11-09 16:32:28
    注意:由于C是缓冲写 所以要在关闭或刷新后才能看到文件内容。 1、C语言中写文件 //获取文件指针 FILE *pFile = fopen("1.txt", //打开文件的名称 "w"); // 文件打开方式 如果原来有内容也会销毁 //向文件写数据 ...

    注意:由于C是缓冲写 所以要在关闭或刷新后才能看到文件内容。
    1、C语言中写文件

    //获取文件指针
    FILE *pFile = fopen("1.txt", //打开文件的名称
                        "w"); // 文件打开方式 如果原来有内容也会销毁
    //向文件写数据
    fwrite ("hello", //要输入的文字
             1,//文字每一项的大小 以为这里是字符型的 就设置为1 如果是汉字就设置为4
             strlog("hello"), //单元个数 我们也可以直接写5
             pFile //我们刚刚获得到的地址
             );
    //fclose(pFile); //告诉系统我们文件写完了数据更新,但是我们要要重新打开才能在写
    fflush(pFile); //数据刷新 数据立即更新 
    

    2、读取文件

    FILE *pFile=fopen("1.txt","r"); //获取文件的指针
    char *pBuf;  //定义文件指针
    fseek(pFile,0,SEEK_END); //把指针移动到文件的结尾 ,获取文件长度
    int len=ftell(pFile); //获取文件长度
    pBuf=new char[len+1]; //定义数组长度
    rewind(pFile); //把指针移动到文件开头 因为我们一开始把指针移动到结尾,如果不移动回来 会出错
    fread(pBuf,1,len,pFile); //读文件
    pBuf[len]=0; //把读到的文件最后一位 写为0 要不然系统会一直寻找到0后才结束
    MessageBox(pBuf);  //显示读到的数据
    fclose(pFile); // 关闭文件
    
    展开全文
  • char b,c[100]; int main(){ FILE * fp1 = fopen("2in.txt", "r");//打开输入文件 FILE * fp2 = fopen("output.txt", "w");//打开输出文件 if (fp1==NULL || fp2==NULL) {//若打开文件失败则退出 puts("不能打开...
    #include<stdio.h>
    int a;
    char b,c[100];
    int main(){
        FILE * fp1 = fopen("2in.txt", "r");//打开输入文件
        FILE * fp2 = fopen("output.txt", "w");//打开输出文件
        if (fp1==NULL || fp2==NULL) {//若打开文件失败则退出
            puts("不能打开文件!");
            return 0;
        }
        fscanf(fp1,"%d",&a);//从输入文件读取一个整数
        b=fgetc(fp1);//从输入文件读取一个字符
        fgets(c,100,fp1);//从输入文件读取一行字符串
         
        printf("%ld",ftell(fp1));//输出fp1指针当前位置相对于文件首的偏移字节数
         
        fputs(c,fp2);//向输出文件写入一行字符串
        fputc(b,fp2);//向输出文件写入一个字符
        fprintf(fp2,"%d",a);//向输出文件写入一个整数
         
        fclose(fp1);//关闭输入文件
        fclose(fp2);//关闭输出文件,相当于保存
        return 0;
    }
    
    展开全文
  • 作为一个新手学习C语言读写数据,我整合了一下自己查找的一些资料,用C语言实现将一个文件读入内存中,里面有运行工具,一个word文档代码。
  • C语言[文件写入读取]

    千次阅读 2022-04-27 16:01:45
    一、文件写入 打开:FILE *a; a=fopen("student.txt","w"); (需要先定义文件指针) 写入格式:fwrite(指向数组或结构体的指针,单个数组里面内容的大小,数量,文件指针)(注意返回0代表写入失败,成功返回数量) 关闭:...
  • c语言文件读取写入

    万次阅读 多人点赞 2018-12-10 13:35:48
    fopen的介绍转自百度百科... 函数原型: FILE * fopen(const char * path, const char * mode); 相关函数:open, fclose, fopen_s, _wfopen 返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打...
  • 用notepad++编辑一个test.c文件 要求从int.txt中读取数据 经过开平方平方计算 输出到另一个out.txt文件中 程序编写 #include <stdio.h> #include <stdlib.h> #include <math.h> #define N ...
  • C语言文件读取和写入操作代码

    千次阅读 2020-09-21 17:48:37
    #include <stdio.h> #define N 1024 #define IN int rwFile(IN char * orgnFile, IN char * outFile) { FILE *fpIN;... // 这一句是将文件指针fp移动到文件数据的最后一位上 int len = ftell
  • C >><<读写文本文件:fstream 或者 ifstream 类负责实现对文件读取,它们内部都对 >> 输出流运算符做了重载;同样,fstr...
  • fwrite函数 ...若定义了流的文件位置指示符,则以成功写入的字符数为单位向前移动。当发生错误时,该流的文件位置指示符的值不可预测。 返回成功写入的元素个数。仅当发生写入错误时,元素个数会
  • C语言提供了多个用于文件读写的标准函数。文件打开后,就可以将“文件指针”作为函数的参数对文件进行读写操作。1.以字符形式读写文件1) 字符读取函数 fgetc( )fgetc(文件指针); //从“文件指针”所指向的文件读取...
  • #include int main(int argc, char **args) { // 写入 FILE *f1 = fopen("/tmp/hello.txt", "w+"); fputs("Hello,World!\n", f1); fclose(f1); // 追加 FILE *f2 = fopen("/tmp/hello.txt", "a+"); fputs("Hello,...
  • codesys通过文件写入...d、通过SysFileClose关闭CSV文件,若文件不关闭,则下次无法读取和写入。 本文所采用的codesys版本为V3.5.14.10,参考博客地址:https://blog.csdn.net/qq_19979629/article/details/124355867
  • C语言文件读取写入链表

    万次阅读 多人点赞 2018-09-24 17:11:06
    //例化 //文件读取 FILE *fp; int i = 0; int j = 0; int ID[9], YW[9], SX[9], YY[9], DL[9], SW[9];//接收文件读出来的数据 char name[9]; //char locationfile[80];//文件路径 //char ch; //printf("请...
  • matlab文件读取和写入

    2021-04-23 16:00:01
    (3)fopen fopen打开一个文件并创建文件标识以供接下来的读写等操作。fopen命令本身不进行读操作。然后可以使用fscanf读取数据,根据需要对数据进行筛选编辑。 例:读取字符串的方法 data.txt 0 1 2 1 2 3 1 2 3 End....
  • 里面涵盖了关于C语言中如何从文件读取信息 如何讲信息写入文件 包括字符的写入和读取 字符串的写入和读取以及整行读取等等的代码
  • fbx:用于读取和写入FBX文件C ++库
  • c语言文件读写总结

    千次阅读 2019-12-30 22:11:48
    打开文件 FILE *fopen(const char *filename, const char *mode) filename – 这是 C 字符串,包含了要打开的文件...“w”:打开一个文本文件,可以写入文件,如果文件不存在则创建,存在则覆盖 “a”:打开一个...
  • 1.收获今天学习了指针的定义,使用,以及它的注意事项,尽管指针有许多的坑,也许我会跌入这个坑中,但是我还是要从跌倒的坑中爬起来,不断理解,收获颇多。虽然以前学过指针,但是...在以前学习c语言文件读取和...
  • C语言读取和写入txt文本

    千次阅读 2020-09-10 17:07:32
    #include<stdio.h> #include<stdlib.h> #define MAX 1000 int main() { //打开文件 FILE *r=fopen("A.txt","r"); if(r==NULL)exit(1); //非0 exit(非零)异常退出 ...//读写文件 // char name[32]; // whi
  • C语言文件读取和写入

    千次阅读 2018-07-17 09:02:23
    注意: 1、由于C是缓冲写 所以要在关闭或刷新后才能看到文件内容 2、电脑处理文本型二进制型的不同 (因为电脑只认识二进制格式) 在C语言中写文件 //获取文件指针FILE *pFi
  • 以字符形式读写文件时,每次可以从文件读取一个字符,或者向文件写入一个字符。主要使用两个函数:fgetc()fputc()。 字符读取函数 fgetc fgetc 是 file get char 的缩写,意思是从指定的文件读取一个字符。...
  • 本篇文章是对C语言文件读入字符串以及将字符串写入文件的方法进行了详细的分析介绍,需要的朋友参考下
  • c语言文件I/O 文件读取和写入

    千次阅读 2019-10-04 13:20:20
    C语言文件相关函数主要有以下几种: ...打开文件函数,传入文件地址打开模式文件打开模式包括 "r" 读取 ,"w" 写入模式,将现有文件清空。如果不存在则创建文件 ,"a" 附加模式,在文件末尾追加数据,不存...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 576,402
精华内容 230,560
关键字:

c文件的读取和写入