C语言代码,fputs函数文件写不出

#include<stdio.h>
#include <stdlib.h>

int f(int n,int m)
{
if(m==1||n==m)
return 1;
else
return f(n-1,m-1)+f(n-1,m)*m;
}

int main(void)
{
FILE *f1;
FILE *f2;
int n;
char s[1];
f1=fopen("input.txt","r");
f2=fopen("output.txt","w");
while(fgets(s,2,f1))
{
n=atoi(s);
}
char result[1];
while(n==1&&n>=1)
{
int i;
int sum=0;
for(i=1;i<=n;i++)
{
sum+=f(n,i);
}
itoa(sum,result,10);
}

fputs(result,f2);
fclose(f1);
fclose(f2);

return 0;

}

读入一个input.txt文件,里面只有一个数字5
要计算结果读出到output.txt,结果是52,可是一直写不出去,是哪里用错了吗,谢谢!

你确定char result[1];够用?

char result[100];试试追问

输出了无数个烫烫烫烫。。。。感觉和这个没关系,因为结果也就一个数字。问题是好像数字出不来,不知道是不是文件读写问题还是其他问题

追答

itoa(sum,result,10);函数没问题吗

有没有在result后面加结束符'\0'?

追问

还是烫烫烫。。。数字出不来,是不是读入的问题

追答

你的atoi和itoa能发出来看看吗

追问

源代码不是都贴出来了吗~

追答

输入n为什么不用fscanf?
while(n==1&&n>=1)

n==1&&n>=1只在n==1时成立
给你改写了一下
#include
#include

int f(int n,int m)
{
if(m==1||n==m)
return 1;
else
return f(n-1,m-1)+f(n-1,m)*m;
}

int main(void){
FILE *f1;
FILE *f2;
int n;
char s[50];
f1=fopen("input.txt","r");
f2=fopen("output.txt","w");
fscanf(f1,"%d",&n);
char result[20];
int i;
int sum=0;
for(i=1;i<=n;i++)
sum+=f(n,i);
itoa(sum,result,10);
fputs(result,f2);
fclose(f1);
fclose(f2);
return 0;}

温馨提示:答案为网友推荐,仅供参考