user-0 提问: 刚进公司，遇到读写文件的问题无法解决了？求大神帮助。

回复:
user: user-0
content: 我付稿费。。。。

user: user-0
content: 没有人帮我把代码写一下吗？

user: user-1
content: 上边忘记说文件里边的  文件内读取的密码长度由你的read返回那个值定，自己数不了的

user: user-1
content: 1：加密后的字符串为乱码是很正常的，是对还是错必须拿以前的密文做对比，密码长度需要由函数返回 2：（linux下c所有系统的）str开头函数的是以\0为截断标志，密码类函数中千万别用，那是给自己找不自在，使用memcopy 。 c++写的少，没去研究

user: user-2
content: 二进制文件不是有函数size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream )   /* fwrite example : write buffer */ #include <stdio.h>  int main () {   FILE * pFile;   char buffer[] = { 'x' , 'y' , 'z' };   pFile = fopen ("myfile.bin", "wb");   fwrite (buffer , sizeof(char), sizeof(buffer), pFile);   fclose (pFile);   return 0; }

user: user-0
content: 引用 13 楼 ADF1230 的回复:[quote=引用 7 楼 u011730237 的回复:] [quote=引用 5 楼 ADF1230 的回复:] 不要用文本，对你的需求来说，你应该是这样的加解密函数：  // set encrypt // returned error code unsigned int Encrypt(unsigned char* pSrcBuffer,int nSrcLength, int unsigned short Key,unsigned char** ppDstBuffer,int* pDstLength);  // set decode // returned error code unsigned int Decrypt(unsigned char* pSrcBuffer,int nSrcLength, int unsigned short Key,unsigned char** ppDstBuffer,int* pDstLength);  你的意思就不是能这样加密文件吗？我加密的是字符串对吗？[/quote]  我的意思是你的代码里面不要出现strlen,strcpy这样的字符串操作函数。全部用unsigned char去操作。[/quote]  获取长度，只能用for循环来操作了。

user: user-3
content: 引用 7 楼 u011730237 的回复:[quote=引用 5 楼 ADF1230 的回复:] 不要用文本，对你的需求来说，你应该是这样的加解密函数：  // set encrypt // returned error code unsigned int Encrypt(unsigned char* pSrcBuffer,int nSrcLength, int unsigned short Key,unsigned char** ppDstBuffer,int* pDstLength);  // set decode // returned error code unsigned int Decrypt(unsigned char* pSrcBuffer,int nSrcLength, int unsigned short Key,unsigned char** ppDstBuffer,int* pDstLength);  你的意思就不是能这样加密文件吗？我加密的是字符串对吗？[/quote]  我的意思是你的代码里面不要出现strlen,strcpy这样的字符串操作函数。全部用unsigned char去操作。

user: user-0
content: 还是没有人为我解答。

user: user-0
content: 引用 10 楼 wulijian 的回复:二进制读写不用加'\0',文本模式加'\0'  char* Pdata = new char[strlen(data)]; 你这里data是字符串？如果是二进制数据，strlen获取可能是错误的  那我应该怎么操作呢？？求大神具体一点，我时时在线，没有理解我的意思，可以继续咨询我了，谢谢了。

user: user-4
content: 二进制读写不用加'\0',文本模式加'\0'  char* Pdata = new char[strlen(data)]; 你这里data是字符串？如果是二进制数据，strlen获取可能是错误的

user: user-0
content: 能不能来一个大神 給我讲讲 我发问的都有问题吗？

user: user-0
content: 帖子帖子不要沉啊，，，，，，，，，

user: user-0
content: 引用 5 楼 ADF1230 的回复:不要用文本，对你的需求来说，你应该是这样的加解密函数：  // set encrypt // returned error code unsigned int Encrypt(unsigned char* pSrcBuffer,int nSrcLength, int unsigned short Key,unsigned char** ppDstBuffer,int* pDstLength);  // set decode // returned error code unsigned int Decrypt(unsigned char* pSrcBuffer,int nSrcLength, int unsigned short Key,unsigned char** ppDstBuffer,int* pDstLength);  你的意思就不是能这样加密文件吗？我加密的是字符串对吗？

user: user-5
content: string做为结构体成员，不能直接内存操作，string本身是一个类。

user: user-6
content: 正在学习C，围观长知识。。。

user: user-3
content: 不要用文本，对你的需求来说，你应该是这样的加解密函数：  // set encrypt // returned error code unsigned int Encrypt(unsigned char* pSrcBuffer,int nSrcLength, int unsigned short Key,unsigned char** ppDstBuffer,int* pDstLength);  // set decode // returned error code unsigned int Decrypt(unsigned char* pSrcBuffer,int nSrcLength, int unsigned short Key,unsigned char** ppDstBuffer,int* pDstLength);

user: user-0
content: 引用 1 楼 zhuobattle 的回复:string做为结构体成员，不能直接内存操作，string本身是一个类。 你就这样回答完了吗？

user: user-0
content: 引用 2 楼 user-7 的回复:LZ先想清楚二进制读写和文本读写有什么不同。  你告诉一下啊，这么简单的几个字，求你发发慈悲，多发点字体啊。

user: user-7
content: LZ先想清楚二进制读写和文本读写有什么不同。