| fseek()函数一般用于二进制文件 也可用于文本文件 |
| EOF只可用于文本文件 用来作为文件结束的标志 |
| 函数feof()用来判断文件的当前状态是否处于结束 是返回值为非0 否则返回值0 |
| fgets函数最多从文件中读入n-1个字符 |
| fread(buffer,....)buffer代表一个指针,指向要读入数据的存放地址 |
| #include "stdio.h" |
| int main() { |
| FILE *fp = fopen("C:\\Users\\28418\\Desktop\\gao.txt", "w+"); |
| int i, m, n; |
| for (i = 1; i < 6; ++i) { |
| fprintf(fp, "%d", i); |
| if (i % 3 == 0) |
| fprintf(fp, "\n"); |
| } |
| rewind(fp); |
| fscanf(fp, "%d%d", &m, &n); |
| printf("%d %d\n", m, n); |
| fclose(fp); |
| } |
| #include "stdio.h" |
| int main() { |
| FILE *fp = fopen("C:\\Users\\28418\\Desktop\\gao.txt", "w+"); |
| int i, a[8] = {1, 2, 3, 4, 5, 6, 7, 8}; |
| fwrite(a, sizeof(int), 8, fp); |
| fseek(fp, sizeof(int) * 4, SEEK_SET); |
| fread(a, sizeof(int), 4, fp); |
| fclose(fp); |
| for (i = 0; i < 8; ++i) |
| printf("%d,", a[i]); |
| printf("\n"); |
| |
| } |
| #include "stdio.h" |
| |
| int main() { |
| FILE *fp; |
| int count = 0; |
| |
| if ((fp = fopen("C:\\Users\\28418\\Desktop\\gao.txt", "r+")) == NULL) |
| printf("打不开文件\n"); |
| fgetc(fp); |
| while (!feof(fp)) { |
| fgetc(fp); |
| count++; |
| } |
| printf("字符个数 %d\n", count); |
| fclose(fp); |
| } |
| |
| FILE *fp = fopen("C:\\Users\\28418\\Desktop\\gao.txt", "w"); |
| if (fp == NULL) { |
| printf("打开文件失败"); |
| } |
| int x = (int) sqrt(2000), y, z, count = 0; |
| for (int i = 0; i < x; ++i) { |
| for (int y = 0; y < x; ++y) { |
| for (int z = 0; z < x; ++z) { |
| if ((i * i + y * y + z * z) == 2000) { |
| count++; |
| fprintf(fp, "x=%d,y=%d,z=%d\n", i, y, z); |
| } |
| } |
| } |
| } |
| fprintf(fp, "解的个数为:%d", count); |
| fclose(fp); |
| |
| FILE *fp = fopen("C:\\Users\\28418\\Desktop\\gao2.txt", "w"); |
| int a[10]; |
| if (fp == NULL) { |
| printf("打开文件失败"); |
| } |
| for (int i = 0; i < 10; ++i) { |
| scanf("%d", &a[i]); |
| } |
| for (int i = 0; i < 10; ++i) { |
| fprintf(fp, "%d,", a[i]); |
| } |
| fclose(fp); |
| |
| FILE *fp = fopen("C:\\Users\\28418\\Desktop\\gao2.txt", "r"); |
| int b[10]; |
| if (fp == NULL) { |
| printf("打开文件失败"); |
| } |
| for (int i = 0; i < 10; ++i) { |
| fscanf(fp, "%d", &b[i]); |
| } |
| for (int i = 0; i < 10; ++i) { |
| printf("%d", b[i]); |
| } |
| fclose(fp); |
| |
| FILE *fp1 = fopen("C:\\Users\\28418\\Desktop\\test1.txt", "r"); |
| FILE *fp2 = fopen("C:\\Users\\28418\\Desktop\\test2.txt", "r"); |
| FILE *fp = fopen("C:\\Users\\28418\\Desktop\\test.txt", "w"); |
| if (fp == NULL || fp1 == NULL || fp2 == NULL) { |
| printf("打开文件失败"); |
| } |
| |
| char buffer[1024]; |
| while (fgets(buffer, sizeof(buffer), fp1)) { |
| fputs(buffer, fp); |
| } |
| |
| |
| while (fgets(buffer, sizeof(buffer), fp2)) { |
| fputs(buffer, fp); |
| } |
| fclose(fp1); |
| fclose(fp2); |
| fclose(fp); |
| |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?