fprintf写的结果怎么回事?

LostTemper 2003-03-25 09:14:17
FILE *f;
CString strFile = "C:\\test.txt";
if (( f = fopen( strFile.GetBuffer(strFile.GetLength() ),"wb+") ) == NULL )
{
strFile.ReleaseBuffer(strFile.GetLength());
return -1;
}

fprintf(f, "%d", 1);
fprintf(f, "%s", strFile);


结果test.txt里面所写的并不是二进制文件,而是"C:\\test.txt".这是怎么回事啊?怎么让它写二进制呀
...全文
86 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
liugy 2003-03-26
  • 打赏
  • 举报
回复
以二进制写入CString类型时,你就要写入长度,读入的时候先读长度,再读内容,这和网络传输CString类型是一样的。
lyrzhlgq 2003-03-26
  • 打赏
  • 举报
回复
好像要写二进制,只能用fwrite
Zark 2003-03-26
  • 打赏
  • 举报
回复
fprintf()是用来将各类基本类型值写成文本,然后存放于文件中的.

要写BINARAY,可用
int n=1;
char strFile[]="C:\\test.txt";

fwrite(&n,sizeof(int),1,f);
fwrite(strFile,sizeof(char),strlen(strFile),f);
LostTemper 2003-03-25
  • 打赏
  • 举报
回复
那怎么写二进制的呢?
icansaymyabc 2003-03-25
  • 打赏
  • 举报
回复
fprintf(f, "%d", 1);
fprintf(f, "%s", strFile);
这种语句只能写出文本。
LostTemper 2003-03-25
  • 打赏
  • 举报
回复
可是,我如果用strFile.Write(buf, lenofbuf)写了数据之后,我再读文件岂不是麻烦了?
因为我不知道到底应该读入的长度是多少啊!
如果用fprintf写的,我直接用fscantf读,就很方便
曾经的猎狐 2003-03-25
  • 打赏
  • 举报
回复
up
用户 昵称 2003-03-25
  • 打赏
  • 举报
回复
fprintf就是printf了,getbuffer就是CString内涵的char[]数组,当然是这样,写成二进制可以直接
strFile.Write( buf, lenofbuf );
LostTemper 2003-03-25
  • 打赏
  • 举报
回复
uppppppppppppppp

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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