• 締切済み

C、C++

SE未経験で勉強中です。 C、Visual studioC++、Windows 10 問題: sキーを入力してから10秒後に、 "10秒経ちました"と表示する。 for、Sleep、scanfを使用。 どのようにかいたらよいのか なんどやってもエラーは出ないものの 10秒経ったら文字が表示されることしかできず、 sキーを押してから10秒後、という処理ができません。 教えていただけたら幸いです。 #include 〈stdio.h〉 #include 〈windows.h〉 int main(void) { printf(“sキーを入力してください。”); Sleep(10000); printf(“10秒経ちました!” ); } ↑ここにどうやったらsキーを押してからこの処理を実行させるのですか?

noname#243128
noname#243128

みんなの回答

  • agehage
  • ベストアンサー率22% (2552/11349)
回答No.2

このプログラムは「Sキーを入力して下さい」といってそのまま10秒待ってますね ここでscanf関数を使って、キーボードの入力を確認しなくてはなりません 1:「Sキーを入力して下さい」と表示 2:キーボードからの入力を読み取る(scanf) 3:入力された文字がSかどうか判断する(if) 4:Sなら10秒待って5へ   Sでないならどうする?もう一度入力を促すなら1へ(while) 5:「10秒立ちました」と表示する 6:プログラムを終了する(return) 2,3,4をよく考えてみてください scanfに関しては自身で検索して調べてみてください

回答No.1

「scanfを使用」が抜けてません? https://www.sejuku.net/blog/24965

関連するQ&A

  • C言語のfor文について

    閲覧有難うございます。さて本題ですが、以下のプログラム #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <Windows.h> #define S 500 int main(void) { unsigned char x, input; int i; for (i = 0; i < 20; i++) { x = 0x01; scanf("%#x", &input); Sleep(S); printf("%#x\n", x); } return 0; } を実行したら、一度だけキー入力をした後はキー入力の処理は飛ばされ、 最初に入力した値がi < 20までループが続くのですが・・・ 正常な動作としては キー入力  ↓ スリープ  ↓ 入力値を出力  ↓ 再びキー入力 となるはずですよね?しかし何故か2回目以降のscanf()が省略されるのは何故でしょうか? 環境はVisual C++ 2010です。

  • C言語でforとSleepを使う

    SE未経験で勉強中です。 C、Visual studioC++、Windows 10 問題: sキーを入力してから10秒後に、 "10秒経ちました"と表示する。 for、Sleep、scanfを使用。 どのようにかいたらよいのか なんどやってもエラーは出ないものの 10秒経ったら文字が表示されることしかできず、 sキーを押してから10秒後、という処理ができません。 教えていただけたら幸いです。

  • 文字列を入力・表示

    文字列を入力して表示したいのですができません。誤っていないと思うのですが・・・。何が間違っているのでしょうか? #include<stdio.h> void main (void) { char namae; printf("お名前を登録します。お名前を入力して下さい。\n"); scanf("%s",&namae); printf("お名前は%sですね。\n",namae); }

  • C言語プログラム

    2つの整数を入力させ、それらが等しい場合hitoshii、異なる場合にはhitoshikunaiと出力するプログラムを作りたいのですが、うまくいきません。間違っているところを教えてください。 #include<stdio.h> #include<conio.h> void main() { printf("整数を入力してください:"); int number1; scanf("%d",number1); printf("整数を入力してください:"); int number2; scanf("%d",number2); if(number1==number2) { printf("hitoshii"); } else { printf("hitoshikunai"); } getch(); }

  • C言語プログラミング

    台形の面積を求めるプログラムを作りたいのですが、最後のmensekiの出力の仕方がわかりません。printf以降のプログラムを教えてください。 #include<stdio.h> #include<conio.h> void main() { int number1,number2,number3,menseki; printf("上底を入力してください:"); scanf("%d",&number1); printf("下底を入力してください:"); scanf("%d",&number2); printf("高さを入力してください:"); scanf("%d",&number3); menseki=(number1+number2)*number3/2; printf( ここがわかりません getch(); }

  • C言語について

    いつもお世話になっています。 以下のソースを分割コンパルをしたいのですが・・・コンパイルがとおりません。 環境としては、Visual Studio 2005 です。 ヘッダファイルは、 /* People.h */ #include <stdio.h> #include <string.h> typedef struct { char name[256]; int age; int sex; } People; /* 個人データを入力する */ extern void InputPeople(People *data); /* 個人データを表示する */ extern void ShowPeople(People data); で、 /* People.c */ #include "People.h" void InputPeople(People *data) { /* 中身は同じなので省略 */ printf("名前:"); scanf("%s",data->name); printf("年齢:"); scanf("%d",&data->age); printf("性別(1-男性、2-女性):"); scanf("%d",&data->sex); printf("\n"); } void ShowPeople(People data) { /* 中身は同じなので省略 */ char sex[16]; printf("名前:%s\n",data.name); printf("年齢:%d\n",data.age); if (data.sex == 1) { strcpy(sex,"男性"); } else { strcpy(sex,"女性"); } printf("性別:%s\n",sex); printf("\n"); } どこがおかしいのでしょうか?? あと、コマンドのところでは、 C:\ > ←のあとは、普通にcl People.cとすればいいのでしょうか?

  • C言語でscanf()が先に実行されるのはなぜですか?

    C言語でscanf()が先に実行されるのはなぜですか? #include <stdio.h> int main(void){ int intNum; printf("整数を入力してください:\n"); scanf("%d", &intNum); printf("入力値は:%d\n",intNum); return(0); }

  • C言語の初心者です。これを実行してみてください。

    「a」って打ち込んだら「a」ってでましたか? #include<stdio.h> int main(void){ char a; printf("aaa\n"); scanf_s("%c", &a); printf("%c", a); return 0; }

  • getchar()について 教えてください。

    visual studio 2010 professinalで以下のソースをデバッグして ”続行するには何かキーを押してください!”  で待機させたいのですが getchar()一個だけでは実現しません。   2個重ねるとOKです。どうしてでしょうか。  -------------- 以下のようにscanf関数がなければokということは突き止めたのですが、、、。  ご教授ください。 #include <stdio.h> int main(void) { int i; printf("なにか数字を入力してください。\n"); scanf("%d",&i); printf("今あなたが入力した数字は%dです。\n",i); printf("続行するには何かキーを押してください!"); getchar(); //getchar(); return 0; } ---------------------------------------------------------------- int main(void) { printf("続行するには何かキーを押してください!"); getchar();   return 0; }

  • c言語のポインタへの文字列入力についてです。

    当方c言語初学者なのですがscanfを使ってポインタに文字列を入力したいのですがバグが発生して進みません・・・どういうことなのでしょうか? #include <stdio.h> int main(void) { char *a; scanf("%s", a); printf("%s", a); return (0); } *aをa[128]; のように配列に変えるとうまくいくことはなんとかわかるのですが・・・助けてください(^_^;)

専門家に質問してみよう