• 締切済み

Cygwinに「新しい時刻を入力してください」と表示される。

C言語の授業を大学後期からとった初心者です。 最近、経過日計算のプログラムを作る課題が出ました。 まずは、パソコンから日付を取得しようと思ったのですが、 何故か実行すると、 現在の時間12:34:21.01 新しい時刻を入力してください: という風に表示されます。これは何故なのでしょうか。

みんなの回答

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.4

CygwinではないがLinuxの環境では正常にこのプログラムは動作します。あなたが作成したプログラムの名前をtimeにしていませんか。 そうすると、実際のtimeコマンドが、実行されてしましますので、 プログラム名を別の名前にしてみて下さい。

tazitea
質問者

お礼

あ…プログラムの名前timeにしてました。 ご指摘ありがとうございます!

  • edomin
  • ベストアンサー率32% (327/1003)
回答No.3

#2です。 「TIME」コマンドを実行しているところで「/T」オプションをつけてみましょう。 以下抜粋 「このスイッチを指定すると、現在の時刻だけが表示され、新しい時刻を入力するためのプロンプトは表示されません。」

tazitea
質問者

お礼

ありがとうございます!

  • edomin
  • ベストアンサー率32% (327/1003)
回答No.2

どうやって、現在の時刻を取得しようとしているのでしょう? 「現在の時間12:34:21.01 新しい時刻を入力してください:」 これは、コマンドプロンプト上で「TIME」コマンドを実行したときと結果が同じです。

tazitea
質問者

補足

まだ、時間の取得の部分だけですが、こんな感じです。 #include <stdio.h> #include <time.h> main() { time_t timer; struct tm *t_st; /* 現在時刻の取得 */ time(&timer); /* 現在時刻を構造体に変換 */ t_st = localtime(&timer); printf("現在%d/%d/%d",t_st->tm_year,t_st->tm_mon+1,t_st->tm_mday); return(0); }

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.1

どのようなプログラムを作成されましたか。 たぶん、そのプログラムが、新しい日付をセットすることを行っているとおもいますが、ソースが提示されないと判断のしようがありません。

tazitea
質問者

補足

#2さんの補足に追加させていただきました。

関連するQ&A