C语言中向txt文件中写数据,并且只输出一个?

我们C语言大作业里的东西,有一部分是要往文件中输入当前楼层和时间,以下是一小部分代码,但不能输进去,应该是时间问题?不清楚,哪位高人帮忙看看,先谢谢了
#include<stdio.h>
void main()
{
int prefloor=10;
int state=1;
long int i;
char timechar[5]={'0','0','0','0'};
char chfloor;
int nowfloor=4;
FILE * cfPtr=NULL;
if( (cfPtr=fopen("dest.txt","w"))==NULL)
printf("can't open file\n");
else
{
while(1){
if(state==1)
{
if(prefloor!=nowfloor)
{
for (i=0;i<4444444;i++);
// changetype(timechar);
fputs(timechar,cfPtr);
fputs(" ",cfPtr);
chfloor='0'+nowfloor;
fputc(chfloor,cfPtr);
fputc('\n',cfPtr);
prefloor=nowfloor;
}
}
}
}
}
这是一个在某个线程里的程序,不能关闭文件,要一直运行下去,也不能跳出while(1)死循环

#include<stdio.h>
void main()
{
int prefloor=10;
int state=1;
long int i;
char timechar[5]={'1','2','3','4'};
char chfloor;
int nowfloor=4;
FILE * cfPtr=NULL;

if( (cfPtr=fopen("dest.txt","a+"))==NULL)
{
printf("can't open file\n");
return ;
}
while(1)
{
if(prefloor!=nowfloor)
{
for (i=0;i<444;i++)
{
;
}
// changetype(timechar);
fputs(timechar,cfPtr);
fputs(" ",cfPtr);
chfloor='0'+nowfloor;
fputc(chfloor,cfPtr);
fputc('\n',cfPtr);
prefloor=nowfloor;
}
break;
}
fclose(cfPtr);
}

几个问题:
1.while(1),死循环了。需要break。
2.文件用完必须要关闭。fclose。
3.文件读写的方式改成a+
4.for循环有什么意义吗?需要停留一段时间?可以用Sleep函数。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-21
#include<stdio.h>
void
main()
{
int
prefloor=10;
int
state=1;
long
int
i;
char
timechar[5]={'1','2','3','4'};
char
chfloor;
int
nowfloor=4;
FILE
*
cfPtr=NULL;
if(
(cfPtr=fopen("dest.txt","a+"))==NULL)
{
printf("can't
open
file\n");
return
;
}
while(1)
{
if(prefloor!=nowfloor)
{
for
(i=0;i<444;i++)
{
;
}
//
changetype(timechar);
fputs(timechar,cfPtr);
fputs("
",cfPtr);
chfloor='0'+nowfloor;
fputc(chfloor,cfPtr);
fputc('\n',cfPtr);
prefloor=nowfloor;
}
break;
}
fclose(cfPtr);
}
几个问题:
1.while(1),死循环了。需要break。
2.文件用完必须要关闭。fclose。
3.文件读写的方式改成a+
4.for循环有什么意义吗?需要停留一段时间?可以用Sleep函数。
相似回答