#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] 举报,一经查实,本站将立刻删除。