(十)linux下用标准i/o实现格式化输出并且把时间每隔一秒输出到文件中

来源:互联网 发布:封印者画质优化 编辑:程序博客网 时间:2024/06/04 22:41

一格式化输出

1。int printf();格式化好的字符串放到终端输出。

2。int fprintf(FILE *stream,const char *fmt,...);可以输出到指定的流中。

3。sprintf(char *s,const char *fmt);以指定格式把字符串输出到缓冲区中。

FILE *fp

char buf[64]

以指定年月日写入文件和缓冲区fprintf(fp,"%d-%d-%d",year,month,data);

写入缓冲区中sprintf(buf,........................同上);

#include<stdio.h>
#include<string.h>
#include<unistd.h>//sleep
#include<time.h>//time locatime

int main()
{
    FILE *fp;
    int line = 0;//统计文件行号
    char buf[64];//定义缓冲区
    time_t t;
    struct tm *tp;


    if((fp = fopen("test.txt","a+"))==NULL)
    {
        perror("fopen");
        return -1;
    }
    while(fgets(buf,64,fp) != NULL)
    {
        if(buf[strlen(buf) - 1] == '\n')line++;//一下读64个到缓冲区 可能包含多行 所以判断一个缓冲区行号是多少
    }
    while(1) //写入时间
    {
        time(&t); //获取时间
        tp = localtime(&t);
        fprintf(fp,"%2d,%d-%02d-%02d %2d:%2d:%2d\n",++line,tp->tm_year+1900,tp->tm_mon+1,tp->tm_mday,tp->tm_hour,tp->tm_min,tp->tm_sec);
        fflush(fp);//强制刷新 保证字符串立刻到文件里
        sleep(1);
    }

    return 0;
}



阅读全文
0 0
原创粉丝点击