2016-03-30 17 views
0

現在の時刻に10秒を追加し、更新された時刻と実際の時刻を比較するこのコードを作成しています。 ここに私のコードです。誰が私が間違っているのか教えてくれますか?ここ は私のコードです:文字列比較を使用して時刻を比較しようとしています

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

    int main(int argc, char **argv) 
    { 
      time_t timeNow; 
      time_t timeAct; 
      struct tm* time_info; 
      time(&timeNow); 
      time(&timeAct); 
      time_info = localtime(&timeNow); 
      char timeStr[sizeof"HH:MM:SS"]; 
      char timeN[sizeof"HH:MM:SS"]; 

      strftime(timeStr, sizeof(timeStr), "%H:%M:%S", time_info); 
      printf("Time now: %s\n", timeStr); 


      timeNow += 10; 
      time_info = localtime(&timeNow); 
      strftime(timeStr, sizeof(timeStr), "%H:%M:%S", time_info); 
      printf("New time: %s\n", timeStr); 

      time_info=localtime(&timeAct); 
      strftime(timeN, sizeof(timeN), "%H:%M:%S", time_info); 
      printf("time Actual: %s\n",timeN); 


      while(1) 
      { 
        if(strcmp(timeStr,timeN) == 0) 
        { 
          printf("hi"); 
        } 
      } 
} 

私は、文字列の比較に問題があると思います。確かに!ここ

が出力されます。

Time now: 12:41:17 
New time: 12:41:27 
time Actual: 12:41:17 
+0

あなたが直面している問題は何ですか?あなたの 'while(1)'ループは決して壊れません。 – Marievi

+0

ええ、私は休憩が必要だと思った。問題は:私は私の "ハイ"を印刷することができません。 @Marievi –

+0

もう1つのコメント:あなたは 'while'ループは必要ありません。常に同じ文字列を比較し、ループ内で変更するつもりはありません。 – Marievi

答えて

5

あなたがループする前に、一度 "実際の" 時間文字列(timeN)を設定します。ループ内で連続して設定する必要があります。変更しないでください。

関連する問題