fwrite问题求助

shu39721 2011-09-28 10:58:48
看到一段程序
#include <stdio.h>

int main ()
{
FILE * pFile;
char buffer[] = { 'x' , 'y' , 'z' };
pFile = fopen ( "myfile.txt" , "w" );
fwrite (buffer , 1 , sizeof(buffer) , pFile );
fclose (pFile);
return 0;
}

想修改下

int main()
{
FILE * pFile;
string buffer = "xyz";
pFile = fopen ( "myfile.txt" , "w" );
fwrite (buffer , 1 , sizeof(buffer) , pFile );
fclose (pFile);
return 0;
}

为什么字符数组可以通过但是string类型通过不了。如果想用字符串类型要怎么改?
...全文
80 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hongwenjun 2011-09-28
  • 打赏
  • 举报
回复
[Quote=引用楼主 shu39721 的回复:]
看到一段程序
#include <stdio.h>

int main ()
{
FILE * pFile;
char buffer[] = { 'x' , 'y' , 'z' };
pFile = fopen ( "myfile.txt" , "w" );
fwrite (buffer , 1 , sizeof(buffer) , pFile );
fclo……
[/Quote]

写的什么代码 stdio.h 里有 string 吗
使用string 就是 c++了, 学下流有好处,实在性能要求很高 在 C i/o
aizibion 2011-09-28
  • 打赏
  • 举报
回复
试试
int main()
{
FILE * pFile;
string buffer = "xyz";
pFile = fopen ( "myfile.txt" , "w" );
fwrite (buffer.c_str(),1,buffer.length(),pFile); fclose (pFile);
return 0;
}

赵4老师 2011-09-28
  • 打赏
  • 举报
回复
string是对象,不是一段内存。

另外

不要把
fopen("...","...");fscanf,fprintf,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待

fopen("...","...b");fread,fwrite,fclose //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待
弄混了

ouyh12345 2011-09-28
  • 打赏
  • 举报
回复
string::size
shu39721 2011-09-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 hongwenjun 的回复:]

引用楼主 shu39721 的回复:
看到一段程序
#include <stdio.h>

int main ()
{
FILE * pFile;
char buffer[] = { 'x' , 'y' , 'z' };
pFile = fopen ( "myfile.txt" , "w" );
fwrite (buffer , 1 , sizeof(buffer) , pFi……
[/Quote]

我发的是两段程序代码啊。这段程序里,我没有用到string类型哦。
我不觉得这段密码有什么问题。

69,364

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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