帮我看看为什么在WIN-TC里面调试在第一个if的地方指针就为NULL了??

horson 2006-10-24 02:15:01
假设在当前目录下有两个文件DatSouce.dat和DatKey.dat,要求将文件DatSouce.dat中的内容读出来并加密,然后写入文件DatKey.dat中
请使用下面函数
加密函数 Setkey(char)
Setkey(char)要求将得到的字符的ASCii码乘以3然后加10,最后输出
答:
main()
{ FILE *fpsouce,*fpkey;
char ch;
if( (fpsouce=fopen( "DatSouce.dat" ,"r") )==NULL)
{printf(“Cannot open file\n”);
exit(0); }
if( (fpkey=fopen( "DatKey.dat","r") )==NULL)
{printf(“Cannot open file\n”);
exit(0); }
while (! feof( fpsouce ) )
fputc( Setkey( fgetc( fpsouce ) ) , fpkey );
fclose( fpsouce );
fclose( fpkey );
}

Setkey(ch)
char ch;
{ return( (char)( (unsigned int)ch*3+10 ) )
}
...全文
185 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
pcboyxhy 2006-10-24
  • 打赏
  • 举报
回复
你不妨试试 Dev C++

horson 2006-10-24
  • 打赏
  • 举报
回复
问题找到了
因为我用的是 Turbo C for Windows 集成实验与学习环境
所以文件应该放在主程序下面的bin文件夹下面,还有我为了方便阅读
if( (fpsouce=fopen( "DatSouce.dat" ,"r") )==NULL)
在文件名的前后各加了个空格,去掉后就OK了,真是有点迷糊了!!
pcboyxhy 2006-10-24
  • 打赏
  • 举报
回复
或者文件名给出绝对路径
pcboyxhy 2006-10-24
  • 打赏
  • 举报
回复
数据文件必须和exe文件在同一目录
jixingzhong 2006-10-24
  • 打赏
  • 举报
回复
也就是请先建立 DatSouce.dat 文件, 或者是souc.txt文件,
后面的 if( (fpkey=fopen( "DatKey.dat","r") )==NULL)
应该是 if( (fpkey=fopen( "DatKey.dat","w") )==NULL) //写文件, 不是 r 是w,

w 方式的话,
没有现存文件会自动建立的
jixingzhong 2006-10-24
  • 打赏
  • 举报
回复
if( (fpsouce=fopen( "DatSouce.dat" ,"r") )==NULL)

r 方式打开文件的时候,
确保这个文件已经存在了,
否则打开失败, 返回 NULL
horson 2006-10-24
  • 打赏
  • 举报
回复
我在想是不是因为我用的是 Turbo C for Windows 集成实验与学习环境的缘故啊??
horson 2006-10-24
  • 打赏
  • 举报
回复
我没有超过啊,而且我把改了为souc.txt和key.txt还是一样提示:Cannot open file
pcboyxhy 2006-10-24
  • 打赏
  • 举报
回复
文件名不要超过8个字符

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧