69,371
社区成员
发帖
与我相关
我的任务
分享
#include "stdafx.h"
#define FILENAME1 "filename1.txt"
#define FILENAME2 "filename2.txt"
#define NUM 10
int _tmain(int argc, _TCHAR* argv[])
{
FILE* p1=NULL;//文件指针,指向读入数据的文件
FILE* p2=NULL;//文件指针,指向需要修改的文件
int i; //循环控制变量,控制读写次数
char ch;
char buff[1024];
char read_fpxxfpje[9];
//write_fpxxfpje[10];
if ((p1 = fopen(FILENAME1, "rb")) == NULL)
{
printf("读取文件失败,按回车键退出!\n"); //输出错误提示
while (1) //死循环控制错误提示
{
ch = getchar();
if (ch == '\n')break; //满足条件退出循环
}
exit(1);
}
if ((p2 = fopen(FILENAME2, "rb+")) == NULL)
{
printf("写入文件失败,按回车键退出!\n"); //输出错误提示
while (1) //死循环控制错误提示
{
ch = getchar();
if (ch == '\n')break; //满足条件退出循环
}
exit(1);
}
memset(buff, 0, 1024); //数组元素置零
for (i = 0; i < NUM; i++)
{
if (fgets(buff, 1024, p1) != NULL) //检查能否读取read指向文件的第一行数据
{
memset(read_fpxxfpje, 0, 9);
memcpy(read_fpxxfpje, buff + 514, 8); //复制read指向文件第一行数据第514~523个数据,赋予read_fpxx.fpje
printf("read_fpxx.fpje:%s\n", read_fpxxfpje); //输出.fpje的值
}
else
printf("获取第%d行数据失败",i); //不能打开文件提示错误信息
if (fgets(buff, 1024, p2) != NULL) //检查能否读取数据
{
fseek(p2, 32L,0);
fputs(read_fpxxfpje, p2);
fseek(p2, 109L, 1);
}
else
printf("写入第%d行数据失败", i);
}
fclose(p1);
fclose(p2);
while (1) //死循环控制错误提示
{
printf("程序执行完成,请按回车键退出程序!");
ch = getchar();
if (ch == '\n')break; //满足条件退出循环
}
exit(1);
return 0;
}
if (fgets(buff, 1024, p2) != NULL) //检查能否读取数据
{
fseek(p2, 32L,0);
fputs(read_fpxxfpje, p2);
fseek(p2, 109L, 1);
}
else
printf("写入第%d行数据失败", i);
if (fgets(buff, 1024, p2) != NULL) //检查能否读取数据
{
fseek(p2, 32L + i * 8, 0); //主要对这句,进行修改
fputs(read_fpxxfpje, p2);
//fseek(p2, 109L, 1); //这句没看出有什么作用
}