微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

解码一个文件

#include <Windows.h> #include <cstdio> const int KEY=111; void encryptStrA(char* sometext) { int length; length=strlen(sometext); for(int i=0; i<length;i++) sometext[i]^=KEY; } int main(void) { FILE* pFile=fopen("pliczek","wb"); char sign; char sampleString[]="Hello World!"; encryptStrA(sampleString); fprintf(pFile,"%c%c%s%c%c",13^KEY,10^KEY,sampleString,10^KEY); fclose(pFile); pFile=fopen("pliczek","rb"); while(!feof(pFile)) { fscanf(pFile,"%c",&sign); printf("%c",sign^KEY); } fclose(pFile); system("PAUSE"); return 0; }

我回避了一些棘手的事情

文件以二进制模式打开

在encryptStrA中,strlen函数并不直接放在循环条件中

尽pipe如此,它仍然输出“地狱”,而不是“你好世界!”? 更确切地说,在发现关键字符后切断所有内容,原因是什么? 我使用的操作系统中,每一行文本以回车(ASCII 13)和换行(10)结束。

Windows如何知道我没有使用内存?

即使进程正常运行,如何创build核心转储?

自制内核链接器全局variables和内联string不能被访问

通过networkingUbuntu和C发送声音

阅读PHP.ini使用zend的PHP扩展(而不是PHP语言)

代码fprintf("%s",s); 期望s是零终止的字符串。 当到达'o'^111它会给出一个空字符,所以字符串的其余部分不会写入文件

你可以使用fwrite来代替。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐