| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5186 人关注过本帖
标题:无法实现按ctrl + c 停止 ,再次运行该程序,继续之前的行号,往里面写下时 ...
只看楼主 加入收藏
Juhe
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-2-3
收藏
得分:0 
回复 10楼 拉链
是啊,忘了把文件里的内容重新读出来了,改过后的
# include <stdio.h>
# include <stdlib.h>
# include <time.h>
# include <string.h>

time_t result;
char * data ;
FILE*fp;
FILE*lfp;
int count;
char buf [100];
char lbuf [10];
int main (void)
{
   
    fp = fopen ("./a.txt","a");
    if ( fp == NULL)
    {
        perror ("fopen failed");
        return -1;
    }
   
    lfp = fopen ("./lin","a+");
    if (lfp == NULL)
    {
        perror ("fopen failed");
        return -1;
    }

    fread (lbuf,5,2,lfp);//将lfp文件的内容读到buf
    count = atoi(lbuf);//把buf中的字符转换成整数
    lfp = freopen("./lin", "w", lfp);
    while (1)
    {  
        //bzero (buf,100);//清空buf
        count++;
        result = time (NULL);
        data = asctime( localtime(&result));
        sprintf(buf,"%d.%s",count,data);
        fwrite (buf,strlen(buf),1,fp);//将buf里的写入fp的文件里
        fprintf(lfp, "%d\n", count);
        printf ("%s",buf);
        fseek(lfp, 0 , SEEK_SET);
        fflush (lfp);
        fflush (fp);//强退还能将buf里的存到fp的文件里
        sleep (1);
    }
   
    exit(0);
}
2016-02-04 11:43
拉链
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:107
专家分:534
注 册:2016-1-22
收藏
得分:0 
嗯,能达成目标就行。
看你在一楼的代码使用了freopen函数,以为你打算用重定向的方式读取lin文件的序号,所以我用“lfp = freopen("./lin", "r",stdin);if(lfp!=NULL)scanf("%d",&count);”读取序号到count,无需整形数转换,一样达成目的。
2016-02-04 12:47
快速回复:无法实现按ctrl + c 停止 ,再次运行该程序,继续之前的行号,往里面写 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026288 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved