gpt4 book ai didi

c - 如何更改打印输出? (系统编程和C)

转载 作者:行者123 更新时间:2023-11-30 15:47:05 25 4
gpt4 key购买 nike

我编写了一些代码来显示上次修改时间和文件名。我的代码可以编译,但我需要更改时间戳的格式

我想要的是:
2013年7月17日12:12 2-s.txt
2013年7月17日12:12 3-s.txt

我现在得到的是:
2013 年 7 月 17 日星期三 12:24:48
2-s.txt
2013 年 7 月 17 日星期三 12:24:48
3-s.txt

有人可以看一下我下面的代码并给我一些如何修复它的建议吗?谢谢!!!

#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/utsname.h>
#include <ctype.h>
#include <string.h>
#include <ar.h>
#include <getopt.h>
#include <time.h>
#include <utime.h>

int main (int argc, char **argv)
{
FILE *fp;
size_t readNum;
long long tot_file_size, cur_file_size;
struct stat fileStat;
struct ar_hdr my_ar;
struct tm fileTime;
struct utimbuf *fileTime2;

//open the archive file (e.g., hw.a)
fp = fopen(argv[1], "r");
if (fp == NULL)
{
perror("Error opening the file\n");
exit(-1);
}

//size of the archive file

fseek(fp, 0, SEEK_END);
tot_file_size =ftell(fp);
rewind(fp);


//read data into struct
fseek(fp, strlen(ARMAG), SEEK_SET); //skip the magic string



while (ftell(fp) < tot_file_size - 1)
{
readNum = fread(&my_ar, sizeof(my_ar), 1, fp);

if (stat(argv[1], &fileStat) == -1) {
perror("stat");
exit(EXIT_FAILURE); //change from EXIT_SUCCESS to EXIT_FAILURE
}

if ((fileStat.st_mode & S_IFMT) == S_IFREG)
{
printf("%s", ctime(&fileStat.st_mtime));
printf("%.*s", 15, my_ar.ar_name);
}

cur_file_size = atoll(my_ar.ar_size);

if (fseek(fp, cur_file_size, SEEK_CUR) != 0)
{
perror("You have an error.\n");
exit(-1);
}

}

fclose(fp);

return 0;
}

最佳答案

一旦您使用了struct tm,您就可以使用strftime

#include <stdio.h>
#include <string.h>
#include <time.h>

int main()
{
struct tm *tp;
time_t t;
char s[80];

t = time(NULL);
tp = localtime(&t);
strftime(s, 80, "%b %d %H:%M %Y", tp);
strcat(s, " 2-s.txt");
printf("%s\n", s);
return 0;
}

输出:

Jul 19 07:57 2013 2-s.txt

关于c - 如何更改打印输出? (系统编程和C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17738871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com