フォームのユーザーから入力を取得した後、入力時間と分を確認する必要があります。
( Number1 : Number2 )
例: ( 12 : 21 )
12 時間 21 分を報告してから、再び入力を待つ必要があります。指定された形式に不一致がある場合は、無効な入力として報告する必要があります。私はこのコードを書きました:
#include<stdio.h>
int main()
{
int hourInput=0,minutesInput=0;
char *buffer = NULL;
size_t size;
do
{
puts("\nEnter current time : ");
getline ( &buffer, &size, stdin );
if ( 2 == sscanf( buffer, "%d:%d", &hourInput, &minutesInput ) && hourInput >= 0 && hourInput <= 24 && minutesInput >=0 && minutesInput <= 60 )
{
printf("Time is : %d Hours %d Minutes", hourInput, minutesInput );
}
else
{
puts("\nInvalid Input");
}
}
while ( buffer!=NULL && buffer[0] != '\n' );
return 0;
}
Q. 誰かが数字と の間にスペースを入れると:
、私のプログラムはそれを無効な入力と見なしますが、私はそれを有効なものとして扱う必要があります。
誰かがなぜそれが起こっているのか、そしてこの問題を取り除くためのアイデアを説明できますか? 私が理解している限り、sscanf はすべての空白を無視する必要がありますか?