c语言文件读写的文件指针问题

#include<stdio.h>
#include<stdlib.h>
main()
{
FILE *f_1;
char ch,fname[]="1.txt";
if(!(f_1=fopen(fname,"rb"))) //判断文件是否成功打开
{
printf("打开文件失败!");
exit (1);
}
//读写
while(!(feof(f_1)))
{
ch=fgetc(f_1);
fputc(ch+1,f_1-1);
}
fclose(f_1);
}
如上,我是想将1.txt中的文字都加密(通过fputc(ch+1,f_1-1)),密码就是1了。可是经测试发现,f_1,是永远不变的,所以,f_1-1,肯定错了。用fseek(f_1,1L,1); 好像也不行,请教如何解决,请详细说明 f_1 和 文件当前位置指针 是否是同一个量,它们之间的区别,谢谢。

fputc(ch+1,f_1-1);

f_1-1 是错误的用法, 文件指针你不能随便 + -
你应该用 fread fwrite这样的接口. 而且你文件打开的方式也应该是 wb 支持写入操作的
你要弄清楚f_1的含义, 它并不指向文件的内容, 它只是你访问文件的句柄~追问

非常感谢,你的f_1是句柄,让我豁然开朗,想要的就是这句话。另外,fread接口好像只能读写字符数组,而我是读取文件,难道我理解错了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-12
打开方式改为wb后你仍不能实现功能
第2个回答  2013-11-12
打开文件时要用rw+,才能同时读写。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网