C语言最爱

电脑杂谈  发布时间:2020-03-30 20:32:12  来源:网络整理

fwrite 模式_fwrite rb_fwrite rb

fopen()文件打开操作,这里有两种模式,第一种是读操作,第二种是写操作

/*
文件操作演示
*/
#include <stdio.h>
int main() {
    FILE* p_file = fopen("a.txt", "w"); //以写的方式打开文件 
    if (!p_file) {
        printf("文件打开失败"); 
        return -1; 
    }
    fclose(p_file); 
    p_file = NULL; 
    return 0; 
}

使用fopen()进行读取操作,使用fwrite进行写入操作,fwrite(arrfwrite rb,sizeof(int),5fwrite rb,p_file);

fwrite rb_fwrite 模式_fwrite rb

/*
文件演示操作
*/
#include <stdio.h>
int main() {
    int arr[5] = {0, 1, 2, 3, 4}; 
    FILE *p_file = NULL; 
    p_file = fopen("a.txt", "w"); 
    if(p_file) {
        fwrite(arr, sizeof(int), 5, p_file); 
        fclose(p_file); 
        p_file = NULL; 
        return 0; 
    }
    return -1; 
}

使用fopen()打开并使用fread()阅读

/*
fread 文件读取设置 
*/ 
#include <stdio.h>
int main() {
    int arr[10] = {0}; 
    int size = 0; 
    FILE* p_file = NULL; 
    p_file = fopen("a.txt", "rb"); 
    if (p_file) {
        size = fread(arr, sizeof(int), 10, p_file);
        for(int i = 0; i < size; i++) {
            printf("%d ", arr[i]); 
        } 
        printf("\n"); 
    }
    return 0; 
}

fwrite rb_fwrite 模式_fwrite rb

使用fprintf写一个字符串

/*
将数据写入到文件中
*/ 
#include <stdio.h>
#include <string.h>
int main() {
    char tmp[10] = {0}; //定义字符串 
    int arr[10] = {0, 1, 2, 3, 4}; 
    FILE *p_file = NULL; 
    p_file = fopen("a.txt", "w"); 
    if(p_file) {
        for (int num = 0; num < sizeof(arr);num++){
            /*sprintf(tmp, "%d ", arr[num]); 
            fwrite(tmp, sizeof(char), strlen(tmp), p_file); 
            */ 
            fprintf(p_file, "%d ", arr[num]); 
        }
        fclose(p_file); 
        p_file = NULL;     
    }
}

使用fscanf从文件中读取数据,并使用scanf(p_file,“%d”,val)读取数据

fwrite 模式_fwrite rb_fwrite rb

/*
fscanf 从文件中获取数据 
*/ 
#include <stdio.h>
int main() {
    int val = 0; 
    int arr[10] = {0}; 
    int num = 0; 
    FILE *p_file = NULL; 
    p_file = fopen("a.txt", "rb"); 
    if(p_file) {
        for (num = 0;num < 5;num++) {
            fscanf(p_file, "%d ", &val); //"%d" 表示读取方式,光标向下移动 
            printf("%d ", val); 
            arr[num] = val; 
        }
    printf("\n"); 
    }
    for(num = 0;num < 5;num++) {
        printf("%d ", arr[num]);     
    }
    printf("\n"); 
}

使用倒带将数据指针移动到文件的开头,ftell打印当前光标位置,fseek移动光标

/*
位置指针演示
*/ 
#include <stdio.h>
int main() {
    char ch = 0; 
    FILE *p_file = NULL; 
    p_file = fopen("abc.txt", "rb"); 
    if (p_file) {
        // rewind(p_file); //把位置指针移动到文件开头(把代表位置指针的数值设置成0)
        fseek(p_file, 2, SEEK_SET); 
        printf("%ld\n", ftell(p_file)); //获得位指针数值并把结果显示在屏幕上 
        fread(&ch, sizeof(char), 1, p_file); //进行数据的读取 
//从文件里获得一个字符数组 
        // rewind(p_file); 
        fseek(p_file, 3, SEEK_CUR); 
        printf("%c\n", ch); 
        printf("%ld\n", ftell(p_file));
        fread(&ch, sizeof(char), 1, p_file); 
//从文件里获得一个字符数组
        // rewind(p_file);  
        fseek(p_file, -3, SEEK_END); 
        printf("%c\n", ch); 
        printf("%ld\n", ftell(p_file));
    
        fread(&ch, sizeof(char), 1, p_file); 
//从文件里获得一个字符数组 
        fclose(p_file);     
        p_file = NULL; 
    }
    return 0; 
}

写入数据以进行写入. 这里使用两种主要方法. 第一种方法使用fwrite和fread获得输入数组. 第二种方法使用fprintf和fscanf写入文件.

文件写入:

/*
将字符串写入到文件中
*/ 
#include <stdio.h>
int main() {
    int arr[][5] = {1, 1, 1, 1, 1,
                    2, 2, 2, 2, 2, 
                    3, 3, 3, 3, 3, 
                    4, 4, 4, 4, 4, 
                    5, 5, 5, 5, 5};     
    int i = 0; 
    int j = 0; 
    FILE *p_file = NULL; 
    p_file = fopen("b.bin", "wb"); 
    if (p_file) {
        /* 
        方式一 
        fwrite(arr, sizeof(int), 25, p_file); 
        */ 
        //方式二 
        for (i = 0;i < 5;i++) {
            for (j = 0;j < 5;j++) {
                fprintf(p_file, "%d ", arr[i][j]);
            } 
        }
        fwrite("\n", sizeof(int), 4, p_file); 
        fclose(p_file); 
        p_file = NULL; 
    }
}

文件读取


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-158114-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 高祖刘知远
        高祖刘知远

        现在见俄打击有效抢风头

        • 姚禹
          姚禹

          领海的概念就还没有法律意义

      热点图片
      拼命载入中...