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

/* 文件演示操作 */ #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; }

使用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)读取数据

/* 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
领海的概念就还没有法律意义
现在见俄打击有效抢风头