gpt4 book ai didi

c - 查询用户的日期,如果用户按 Enter 键,则使用今天的日期

转载 作者:行者123 更新时间:2023-11-30 17:23:06 25 4
gpt4 key购买 nike

在 C 程序中,我尝试向用户查询日期,该日期应放入结构中的字符数组中 (pIndex->​​startDate)。如果日期是今天的日期,用户只需按 Enter 键 - 如果日期是其他日期,则用户必须输入它。

输入是通过fgets完成的。我的想法是,我将检查用户输入是否等于 '\n' - 在这种情况下,我将数组设置为等于今天的日期。如果没有,数组将是用户输入的任何内容。

要查找日期(一般情况下),我使用:

time_t now = time(NULL);
struct tm *t = localtime(&now);

..我有一个用于 if 语句的临时字符数组:

char temp_date[11]="2014-01-01";  //initialized with something, guess there is a better solution

我尝试过以下方法:

    printf("Enter start date (press Enter for todays date) > ");
fgets(pIndex->startDate, MAXDATE, stdin);
if (pIndex->startDate=='\n'){
sprintf (temp_date, "%d-%02d-%02d", t->tm_year+1900, t->tm_mon+1, t->tm_mday);
(pIndex->startDate)==temp_date;
}
/*Check the result*/
printf("CHECK TEMP_DATE: %s\n> ",temp_date);
system("pause");

但是,输出中唯一出现的是值 char temp_date 初始化为:2014-01-01

这是一个错误的做法吗?有人知道更好的(工作)方法吗?

最佳答案

试试这个

size_t length;

printf("Enter start date (press Enter for todays date) > ");
fgets(pIndex->startDate, MAXDATE, stdin);
/* this is wrong */
// if (pIndex->startDate=='\n'){
length = strlen(pIndex->startDate);
if ((length == 1) && (pIndex->startDate[length - 1] == '\n')) {
sprintf(temp_date, "%d-%02d-%02d", t->tm_year+1900, t->tm_mon+1, t->tm_mday);
strcpy(pIndex->startDate, temp_date);
}
/*Check the result*/
printf("CHECK TEMP_DATE: %s\n> ",temp_date);
system("pause");

关于c - 查询用户的日期,如果用户按 Enter 键,则使用今天的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27706243/

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