#include <stdio.h>
#include <stdlib.h>
void save(int n);
void out(int n);
int main(void)
{
int n;
printf("Input n:");
scanf("%d", &n);
save(n);
out(n);
return 0;
}
void save(int n)
{
/******start******/
int i,m=0;
FILE *fp;
fp=fopen("lb8204.txt","a");
if(fp==NULL)
{
printf("open error");
return ;
}
for(i=1;i<1000;i++)
{
if(i%7==0||i%10==7||(i%100)/10==7)
{
fprintf(fp,"%4d",i);
m++;
if(m%10==0)
{
fprintf(fp,"\n",i);
}
}
if(m==n)
{
break;
}
}
/******end******/
}
void out(int n)
{
char str[48];
FILE *fp;
fp = fopen("lb8204.txt", "r");
if (fp == NULL)
{
exit(0);
}
printf("Output:\n");
while (!feof(fp))
{
fgets(str, 44, fp);
printf("%s", str);
}
printf("\n");
fclose(fp);
}
我的代码是这样的,只能在start和end中间添加代码,我的程序运行出来的是乱码,求大神解救,谢谢。
你好,我现在的问题是在start和end之间的那部分,其他部分的代码是不能改变的,这段代码的要求是把7的倍数或者含有数字7的数写入文件,然后读出来。我用的是fprintf,然后读取出来的是乱码,我觉得可能是fprintf不行,应该用fputs,但是我不知道如何让fputs循环写入那些符合条件的数字。请问您能解决吗?
本回答被网友采纳