向文件写数据问题
代码如下:#include "stdio.h"
#include "stdlib.h"
int main()
{
FILE *fp;
char ch,temp;
int i,row,col;
long offset;
if((fp=fopen("temp.txt","r+w"))==NULL)
{
printf("file cannot be opened\n");
exit(1);
}
while((ch=fgetc(fp))!=EOF)
printf("%c",ch);
printf("\n请输入要修改的数的行数与列数:(以一行一列为开始)\n");
scanf("%d %d",&row,&col);
offset=(row-1)*6+col+1;
printf("请输入修改为何数:\n");
scanf("%c",&temp);
fseek(fp,offset,SEEK_SET);
fputc(temp,fp);
rewind(fp);
while((ch=fgetc(fp))!=EOF)
printf("%c",ch);
fclose(fp);
return 1;
}
测试的temp.txt文件内容是
1 1 1
1 1 1
1 1 1
代码中的红色部分没有执行不知道为何
[[it] 本帖最后由 zmhdxy 于 2008-4-23 11:10 编辑 [/it]]
----------------解决方案--------------------------------------------------------
只是为了测试 没有考虑到边界问题 输入一定要有效
----------------解决方案--------------------------------------------------------
人呢 人呢 告诉我啊
----------------解决方案--------------------------------------------------------
怎么没有人回答我
----------------解决方案--------------------------------------------------------
你在scanf("%c",&temp); 前面加一句getchar();
就好了
原因是你的temp把前面的回车读进去了
----------------解决方案--------------------------------------------------------
的确 谢了
----------------解决方案--------------------------------------------------------