Home
Categories
WIKI
Topic
User
LANGUAGE:
中文
English
我承认自己后知后觉,刚刚领悟什么叫“史上最喜感程序”
deepin Talks
1071
views ·
3
replies ·
To
floor
Go
xliang9550
deepin
2015-08-08 08:39
Author
还是选材自笑话书《伴侣》,里面有一段用wb模式打开二进制文件,用fputs函数向其中写入字符串的例程。
我一开始没反应过来,因为原书作者最后说:用16进制编辑器打开刚才生成的文件,可以看到字符串变成了一串16进制数。
我刚刚用gcc编译了一下,用16进制编辑器查看,确实看到的是16进制序列,还能看到其他的形式吗?
可是,如果直接用文本编辑器打开呢……
各位可以亲测,我按照笑话书中的方法照本宣科,随便写了一段YY的文字。
#include
#include
int main(void)
{
FILE *fp;
fp=fopen("text.bin","wb");
if(fp==NULL)
{
fprintf(stderr,"Error opening file!\n");
return EXIT_FAILURE;
}
fputs("This is a binary file.\n",fp);
fputs("I love Chris Lee.\n",fp);
fclose(fp);
return 0;
}
然后尝试在终端执行:
gedit text.bin
看看结果如何。
Reply
Like 0
Favorite
View the author
All Replies
JamWeight
deepin
2015-08-08 20:17
#1
C语言?
Reply
Like 0
View the author
BingoLove
deepin
2015-08-08 20:46
#2
有什么问题吗?文本编辑器看到的就是正常文字,16进制看到的不就是16进制吗
Reply
Like 0
View the author
xliang9550
deepin
2015-08-08 22:55
#3
作者原本打算用这种方式进行所谓的“16进制编码”加密。
槽点在于,作者似乎并不清楚,对于ASCII字符串而言,w和wb的写入方式并没有本质上的区别。
Reply
Like 0
View the author
Please
sign
in first
New Thread
Popular Events
More
我一开始没反应过来,因为原书作者最后说:用16进制编辑器打开刚才生成的文件,可以看到字符串变成了一串16进制数。
我刚刚用gcc编译了一下,用16进制编辑器查看,确实看到的是16进制序列,还能看到其他的形式吗?
可是,如果直接用文本编辑器打开呢……
各位可以亲测,我按照笑话书中的方法照本宣科,随便写了一段YY的文字。
#include
#include
int main(void)
{
FILE *fp;
fp=fopen("text.bin","wb");
if(fp==NULL)
{
fprintf(stderr,"Error opening file!\n");
return EXIT_FAILURE;
}
fputs("This is a binary file.\n",fp);
fputs("I love Chris Lee.\n",fp);
fclose(fp);
return 0;
}
然后尝试在终端执行:
gedit text.bin
看看结果如何。