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);
}
//1.统计x*x+y*y+z*z=2000的所有解的个数 并把所有解及解的个数写到文件gao.txt中
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);
//2.通过键盘输入10个整数 并写到gao2.txt文件中 用fprintf()函数完成
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);
//3.将第二题写道gao2.txt文件中的10个整数读出并显示其结果 用fscanf()函数完成
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);
//4.实现分别从两个文件test1.txt和test2.txt中读出数据 然后写到文件test中 形成两个输入文件的连接
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("打开文件失败");
}
// 读取并写入fp1的内容
char buffer[1024];
while (fgets(buffer, sizeof(buffer), fp1)) {
fputs(buffer, fp);
}
// 读取并写入fp2的内容
while (fgets(buffer, sizeof(buffer), fp2)) {
fputs(buffer, fp);
}
fclose(fp1);
fclose(fp2);
fclose(fp);
posted on   不爱美女爱辣条  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?



点击右上角即可分享
微信分享提示