zoukankan      html  css  js  c++  java
  • c--文件读写--文本读写

    #include <stdio.h>
    
    int main()
    {
        FILE *fp=fopen("ss.txt","r"); //打开文件并创建文件指针 
        //实际上是由系统定义的一个结构,该结构中含有文件名、文件状态和文件当前位置等信息 
        //在进行读写操作之前要先打开,使用完毕要关闭
        //在打开一个文件时,如果出错,fopen将返回一个空指针值NULL
        /*
        r(read): 只读
        r+   :   打开读写,从文件头开始 
        w(write): 只写,如果存在则清空,如果不存在则新建 
        w+    : 打开可读/写文件,如果存在则清空,如果不存在则新建
        a(append): 追加,以附加方式打开只写文件,如果不存在则新建,如果文件存在则文件尾开始--只写
       a+ :
    以附加方式打开可写/读文件,如果不存在则新建,如果文件存在则文件尾开始
    t(text): 文本文件,可省略不写 
    b(banary): 二进制文件
    x : 只新建,如果文件已经存在则不能打开
    “rt”      只读打开一个文本文件,只允许读数据
    “wt”      只写打开或建立一个文本文件,只允许写数据
    “at”      追加打开一个文本文件,并在文件末尾写数据
    “rb”      只读打开一个二进制文件,只允许读数据
    “wb”       只写打开或建立一个二进制文件,只允许写数据
    “ab” 追加打开一个二进制文件,并在文件末尾写数据
    “rt+”      读写打开一个文本文件,允许读和写
    “wt+”      读写打开或建立一个文本文件,允许读写
    “at+”      读写打开一个文本文件,允许读,或在文件末追加数 据
    “rb+”      读写打开一个二进制文件,允许读和写
    “wb+”      读写打开或建立一个二进制文件,允许读和写
    “ab+” 读写打开一个二进制文件,允许读,或在文件末追加数据
    */

    if(fp){ int num,num1; fscanf(fp,"%d",&num); //从文件中读取格式化输入

    //从文件中读取一个数,放到num变量中

    //移动文件指针
    printf(
    "%d ",num);

    int n=fclose(fp) ;//关闭文件

    //正常完成关闭文件操作时,fclose函数返回值为0。如返回非零值则表示有错误发生
    }

    else{
    printf(
    "%s ","文件没有打开"); }

    return 0; }

    fscanf说明:

    格式:int fscanf(FILE *stream, const char *format, ...)  

    返回值:如果成功,该函数返回成功匹配和赋值的个数。如果到达文件末尾或发生读错误,则返回 EOF

     参数1:FILE *stream   文件指针

    参数2:const char *format

    格式:%[*][width][modifiers]type]

    *       : 这是一个可选的星号,表示数据是从流 stream 中读取的,但是可以被忽视

    width:     读取的最大字符数

    modifiers :为对应的附加参数所指向的数据指定一个不同于整型(针对 d、i 和 n)、无符号整型(针对 o、u 和 x)或浮点型(针对 e、f 和 g)的大小: h :短整型(针对 d、i 和 n),或无符号短整型(针对 o、u 和 x) l :长整型(针对 d、i 和 n),或无符号长整型(针对 o、u 和 x),或双精度型(针对 e、f 和 g) L :长双精度型(针对 e、f 和 g)

    type:

            int c=fgetc(fp);//读取一个字符(一个无符号字符),并把位置指针往前移动
            //返回读取的字符ASCii码,如果到达文件末尾或发生读错误,则返回 EOF
            printf("%c
    ",c);
    #include <stdio.h>
    
    int main()
    {
        FILE *fp=fopen("ss.txt","w+"); 
            
        if(fp){
            
            fprintf(fp, "%s %s %s %d", "We", "are", "中国人", 1968);//写文件 
                    
            
            int n=fclose(fp) ;
            
        }
        else{
            printf("%s
    ","文件没有打开");
        }
        
        
        return 0;
    }

    fprintf说明:格式   int fprintf(FILE *stream, const char *format, ...)

    把内容写到文件

    看  https://www.runoob.com/cprogramming/c-function-fprintf.html  

    #include <stdio.h>
    
    int main(void){
        int a[]={10,20,30,40,50,60,70,80};
        FILE *fp=fopen("ss.txt","w+"); 
        int len=sizeof(a)/sizeof(a[0]);
        if (fp){
            
            unsigned long num=fwrite(a, sizeof(a[0]), len, fp);//向流steam写数据 
            /*
            参数1:要写入的数组指针
            参数2:要被写入的每个元素的大小,以字节为单位-unsigned long 
            参数3:元素的个数-unsigned long 
            参数4:文件指针 
            返回值:失败返回-1;成功返回写入的数据个数; 
            */
            printf("写了%d个数据
    ",num);
            //int n=fclose(fp) ;
                    
        }
        else{
            printf("文件打开失败--写
    ");
        }
        
        
        int b[8];
        rewind(fp) ;//设置读写指针到文件的开头
            unsigned long num= fread(b, sizeof(int), 8, fp);//读取数据 
            /*
            参数1:用来保存数据的char*;注意大小要大于等于读取的字节数
            参数2:要读取的每个元素的大小,以字节为单位 
            参数3:元素的个数
             参数4:文件指针
             返回值:失败返回-1;成功返回读取的数据个数 
            */
            
            for (int i=0;i<8;i++){
                printf("b[%d]=%d
    ",i,b[i]);
            }
            printf("读了%d个数据
    ",num);
            
             
        
        
        int n=fclose(fp) ;
        
    }

     

  • 相关阅读:
    吴恩达 — 神经网络与深度学习 — L1W3练习
    吴恩达 — 神经网络与深度学习 — L1W2练习
    吴恩达 — 神经网络与深度学习 — L1W1练习
    Scala基础编程
    HDFS常用命令介绍与使用
    关于Eureka客户端连接服务端报错问题Cannot execute request on any known server
    Spring Cloud_Ribbon
    Spring Cloud_eureka组件
    CAS单点登录入门
    Spring Boo数据访问JDBC
  • 原文地址:https://www.cnblogs.com/liming19680104/p/13379598.html
Copyright © 2011-2022 走看看