【发布时间】:2015-10-29 15:04:11
【问题描述】:
我正在用 c 编写一个简单的任务提醒程序,它会在一定时间后打印给定的任务。这是我遇到问题的一小部分代码。基本上我在使用 scanf() 时遇到了麻烦,因为该函数的行为很奇怪。
#include <stdio.h>
#include <time.h>
int main(){
int hour,minute,curr_time,end_time;
printf("input the hour and minute after which alarm will start in HH:MM : \n");
scanf("%d:%d", &hour,&minute);
char task[50];
printf("Name of the task: \n");
scanf("%s" , task);
printf("your task is %s" , task);
return 0;
}
现在当我编译并运行程序时,会发生以下情况。
~$ ./a.out
input the hour and minute after which alarm will start in HH:MM :
00.56
Name of the task:
your task is .56
我无法输入任务的名称。一旦我完成了 hour 和 minute ,程序就会结束而不接受任务输入。
【问题讨论】:
-
当我按照提示输入时间时,我的编译(MSVC)运行良好。
%s格式规范忽略了空格,所以scanf功能不满足只要我一直按“Enter”,我必须输入一些文本,在第一个space字符处被截断。