请问为何无法写入文件?

4oclhashcat 2018-08-06 09:32:36

#include<stdio.h>
int main()
{
FILE *fp;
int ninzu=0;
char name[2][100];
double height[2],weight[2];

if((fp=fopen("write.txt","r"))==NULL)
printf("\a文件打开失败。\n");
else
{
while(ninzu<2)
{
printf("请输入姓名:") ;scanf("%s",name[ninzu]);
printf("请输入身高:") ;scanf("%lf",&height[ninzu]);
printf("请输入体重:") ;scanf("%lf",&weight[ninzu]);
fprintf(fp,"%s:%d %d\n",name[ninzu],height[ninzu],weight[ninzu]);

ninzu++;
}
fclose(fp);
}

puts("");
}




文件write.txt建好了,和程序放在同一目录里,但每次执行后都是空的


...全文
423 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
MUKE_FIGHTING 2018-08-06
  • 打赏
  • 举报
回复
//要向文件写入东西,操作方式要选“w”,“r”是读,无法像文件写东西的
//height和weight是双精度,fprintf那里输出也要是双精度
#include<stdio.h>
int main()
{
FILE *fp;
int ninzu=0;
char name[2][100];
double height[2],weight[2];

if((fp=fopen("write.txt","w"))==NULL)
printf("\a文件打开失败。\n");
else
{
while(ninzu<2)
{
printf("请输入姓名:") ;scanf("%s",name[ninzu]);
printf("请输入身高:") ;scanf("%lf",&height[ninzu]);
printf("请输入体重:") ;scanf("%lf",&weight[ninzu]);
fprintf(fp,"%s:%lf %lf\n",name[ninzu],height[ninzu],weight[ninzu]);

ninzu++;
}
fclose(fp);
}

puts("");
}
4oclhashcat 2018-08-06
  • 打赏
  • 举报
回复
引用 2 楼 sghcpt 的回复:
楼主,如果你想写文件,应该打开文件的时候,是写属性,下面代码可供参考:
#include<stdio.h>
int main()
{
FILE *fp;
int ninzu = 0;
char name[2][100];
double height[2], weight[2];

if ((fp = fopen("write.txt", "w")) == NULL)
printf("\a文件打开失败。\n");
else
{
while (ninzu<2)
{
printf("请输入姓名:"); scanf("%s", name[ninzu]);
printf("请输入身高:"); scanf("%lf", &height[ninzu]);
printf("请输入体重:"); scanf("%lf", &weight[ninzu]);
fprintf(fp, "%s:%lf %lf\n", name[ninzu], height[ninzu], weight[ninzu]);

ninzu++;
}
fclose(fp);
}

puts("");
}


谢谢。改一下W就可以了。总是犯低级错误。
sghcpt 2018-08-06
  • 打赏
  • 举报
回复
楼主,如果你想写文件,应该打开文件的时候,是写属性,下面代码可供参考:
#include<stdio.h>
int main()
{
FILE *fp;
int ninzu = 0;
char name[2][100];
double height[2], weight[2];

if ((fp = fopen("write.txt", "w")) == NULL)
printf("\a文件打开失败。\n");
else
{
while (ninzu<2)
{
printf("请输入姓名:"); scanf("%s", name[ninzu]);
printf("请输入身高:"); scanf("%lf", &height[ninzu]);
printf("请输入体重:"); scanf("%lf", &weight[ninzu]);
fprintf(fp, "%s:%lf %lf\n", name[ninzu], height[ninzu], weight[ninzu]);

ninzu++;
}
fclose(fp);
}

puts("");
}
4oclhashcat 2018-08-06
  • 打赏
  • 举报
回复

#include<stdio.h>
int main()
{
FILE *fp;
int ninzu=0;
char name[2][100];
double height[2],weight[2];

if((fp=fopen("write.txt","r"))==NULL)
printf("\a文件打开失败。\n");
else
{
while(ninzu<2)
{
printf("请输入姓名:") ;scanf("%s",name[ninzu]);
printf("请输入身高:") ;scanf("%lf",&height[ninzu]);
printf("请输入体重:") ;scanf("%lf",&weight[ninzu]);
fprintf(fp,"%s:%d %d\n",name[ninzu],height[ninzu],weight[ninzu]);

ninzu++;
}
fclose(fp);
}

puts("");
}

69,369

社区成员

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

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