文件读写问题!

pressman 2004-12-02 09:47:23
/*我想往一个文件(item)里写
flag=1
flag=2
flag=3
...
flag=50
但发现INT型写入用fpus不行
*/
#include <stdlib.h>
void main()
{
FILE *fp;
int i;
if((fp=fopen("item","a"))==NULL)
{
printf("Cannot open file.\n");
exit(1);
}

for(i=1;i<=50;i++)
{
fputs("flag=",fp);
fputs(i,fp); //error here
fputs("\n",fp);
}
}
//error C2664: 'fputs' : cannot convert parameter 1 from 'int' to 'const char *'
...全文
108 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodluckyxl 2004-12-02
  • 打赏
  • 举报
回复
不好意思偶看错了
以后直接转化用地址 int& -> char&错了
你的意思要把 int数字直接输出 要把
int->char
然后 &char 传入
char tp_c_s[2] = {0};
_itoa( i, tp_c_s, 10 ); //然后把 tp_c_s传入
把这句写入循环中应该就可以
_itoa( 你要转化的int数, 申请空间后的char数组, 转化类型2为2进制,10为10进制,16为16进制)
返回char* 即第二个参数地址
bailindf 2004-12-02
  • 打赏
  • 举报
回复
贴一个调试过的。。。

#include <stdlib.h>
#include <stdio.h>
void main()
{
FILE *fp;
int i;
char sTemp[3];
if((fp=fopen("item.txt","w"))==NULL)
{
printf("Cannot open file.\n");
exit(1);
}

for(i=1;i<=50;i++)
{
fputs("flag=",fp);
itoa(i,sTemp,10);
fputs(sTemp,fp); //error here
fputs("\n",fp);

}
fclose(fp);
}
pressman 2004-12-02
  • 打赏
  • 举报
回复
TO goodluckyxl(被人遗忘的狗):
fputs( reinterpret_cast<char*>(&i),fp); /*我是用VC6*/
的结果是:
flag=
flag=
flag=
flag=
flag=
flag=
flag=
flag=
flag=
flag=
flag=
flag=
flag=
flag=
flag=
flag=
flag=
flag=
flag=
flag=
flag=
flag=
flag=
flag=
flag=
flag=
flag=
flag=
flag=
flag=
flag=
flag=
flag=!
flag="
flag=#
flag=$
flag=%
flag=&
flag='
flag=(
flag=)
flag=*
flag=+
flag=,
flag=-
flag=.
flag=/
flag=0
flag=1
flag=2
pressman 2004-12-02
  • 打赏
  • 举报
回复
TO sink():
char *_itoa( int value, char *string, int radix );
/*http://msdn.microsoft.com/library/default.asp?url=/library/enus/dv_wcecrt4/html/erlrfusitoacmausitow.asp*/
//它有三个参数,怎么填才正确哦??
MCR 2004-12-02
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>

void main()
{
FILE *fp;
int i;
char buff[20];

if((fp=fopen("item","a"))==NULL)
{
printf("Cannot open file.\n");
exit(1);
}

for(i=1;i<=50;i++)
{
fputs("flag=",fp);

_itoa(i,buff,10);

fputs(buff,fp);
fputs("\n",fp);
}
}
pressman 2004-12-02
  • 打赏
  • 举报
回复
TO sink():
char *_itoa( int value, char *string, int radix );
/*http://msdn.microsoft.com/library/default.asp?url=/library/enus/dv_wcecrt4/html/erlrfusitoacmausitow.asp*/
//它有三个参数,怎么填才正确哦??
goodluckyxl 2004-12-02
  • 打赏
  • 举报
回复
int fputs( const char *string, FILE *stream );
//注意第一个参数为const char
//c++
fputs( reinterpret_cast<char*>(&i),fp);
//c
fputs( (char*)(&i),fp);

MCR 2004-12-02
  • 打赏
  • 举报
回复
int fputs( const char *string, FILE *stream );
第一个参数是字符串,而你却用int当然不行啦
sink 2004-12-02
  • 打赏
  • 举报
回复
try: fputs(itoa(i),fp);

69,336

社区成员

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

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