- ベストアンサー
【質問】vc++ scanfの使い方
- vc++のscanfを使って足し算のプログラムを作成しましたが、デバッグエラーが発生しています。
- C言語は学校で学んだことがあり、ある程度は書けますが、vc++の使い方については初めてでわかりません。
- プログラムにはデバッグエラーが発生しており、具体的なエラーメッセージも表示されています。詳しい説明を教えていただきたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- scanf関数について
scanfで数字を入力し「CTRL+D」で入力終了となるプログラムを考えています. 調べてみると以下の様なプログラムでは入力終了となります. #include <stdio.h> int main(void) { int a[256]; int i = 0; while(1) { printf("Input%d = ", i); if ( scanf("%d", &a[i]) == EOF || i > 255) { break; } i++; } return 0; } しかし,次の様にすると「CTRL+D」では終了しません. #include <stdio.h> int main(void) { int a[256]; int i = 0; while(1) { printf("Input%d = ", i); scanf("%d", &a[i]); <-----追加 if ( a[i] == EOF || i > 255) { <-----変更 break; } i++; } return 0; } この場合は,環境がUNIXのため「-1」と入力すると終了します. 2種類の違いが分かりません. 教えてもらえないでしょうか?
- ベストアンサー
- C・C++・C#
- scanf()で、エラー対応
scanf()を使用して、入力で例えば「5462fa」数字ではなく文字を入力してしまった場合エラー(無限ループ)になりますが、 これをscanf()を使用したまま再入力を促すことが可能でしょうか?よろしくお願いします。 #include <stdio.h> int main(){ int a , kazu; for(a=0;a<1;){ printf("値入力せよー>"); scanf ("%d", &kazu); if( kazu >= 1 && kazu <=100 ){ a = a + 1 ; }else{ printf("1から100で入力せよ\n"); } } printf ("kazu = %d", kazu); return 0; }
- ベストアンサー
- C・C++・C#
- プログラミングについて教えてほしいんですが・・・
プログラミングについて教えてほしいんですが・・・ プログラミングで四則演算プログラムをやっているのですが余りの求め方がわかりません。足し算の求め方は /*lesson2.c*/ #include<stdio.h> int add(int,int); int main(){ int a,b,c; printf("a="); scanf("%d",&a); printf("b="); scanf("%d",&b); c=add(a,b); printf("a+b=%d\n",c); } int add(int x, int y){ return x+y; } というやり方で求めることができたのですが、余りは上のプログラムのどこを変えたらいいのでしょうか? 誰かわかる人がいたら教えてください。お願いします。
- 締切済み
- その他(学問・教育)
- c言語なのですが
c言語なのですが #include<stdio.h> main() { int a; printf("整数を5回足し算する\n"); scanf("%d %d",&a); printf("a*5=%d\n",a*5); return(0); } でエラーが起こります どこを修正すればいいのでしょうか
- ベストアンサー
- その他(学問・教育)
- scanf関数のプログラムをgetchar関数で
scanf関数を使って四則演算、論理輪、論理積をint、float、double型で表示するプログラムを作ったのですが これをscanf関数ではなく、getchar関数で組みなおし、関数化する課題が出ました。 そのままscanf関数のところだけを変えても型が違うというエラーが出てうまくいきません。 どうすればいいでしょうか? 一応scanf関数で組んだプログラムの一部を載せておきます。 #include <stdio.h> #include <math.h> main() { float a , b; float x[5]; printf("正の数字を2つ入力して下さい(小数点を含めて4ケタまで):\n"); for(;;) { printf("\na="); scanf("%f" , &a); if(a>=0 && a<=9999 && a) { break; } else { printf("****aに入力エラー****\n"); printf("数字は4ケタ以内の正数を入力:\n"); continue; } } for(;;) { printf("b="); scanf("%f" , &b); if(b>=0 && b<=9999 && b) { break; } else { printf("****bに入力エラー****\n"); printf("数字は4ケタ以内の正数を入力:\n"); continue; } } x[0] = a+b; x[1] = a-b; x[2] = a*b; x[3] = a/b; x[4] = a||b; x[5] = a&&b; printf("\n"); printf("int型 結果:\n足し算=%d\n" , (int)x[0]); printf("引き算=%d\n" , (int)x[1]); printf("掛け算=%d\n" , (int)x[2]); printf("割り算=%d\n" , (int)x[3]); printf("論理和=%d\n" , (int)x[4]); printf("論理積=%d\n" , (int)x[5]); printf("\n"); printf("float型 結果:\n足し算=%f\n" , x[0]); printf("引き算=%f\n" , x[1]); printf("掛け算=%f\n" , x[2]); printf("割り算=%f\n" , x[3]); printf("論理和=%f\n" , x[4]); printf("論理積=%f\n" , x[5]); ・ ・ ・ getchar(); }
- 締切済み
- C・C++・C#
- for文,scanfについて
以下のプログラムを実行したのですが #include<stdio.h> #include<math.h> main(){ int i,b=5; char c; for(i=0;i<=9;++i){ printf("%d\n",b); scanf("%c",c);←入力は自由 } return 0; } 結果 | 予想 5 | 5 a | a 5 | 5 5 | a a | 5 5 | a 5 | 5 a | a と予想と違う結果が繰り返されるんですが なぜか分かりません。アドバイスを頂けな いでしょうか?
- ベストアンサー
- C・C++・C#
- scanf()関数の使い方について
はじめまして。 質問があります。 まずは、以下のコードを見てください。 ---------------------------------------------------------------- #include<stdio.h> int main(void) { char c; int i; printf("0を入力すると終了します。\n"); while(1) { printf("文字を入力してください=>"); scanf("%c",&c); printf("入力した文字は %c です。\n",c); printf("数字を入力してください=>"); scanf("%d",&i); if(i==0) { break; } printf("入力した数字は %d です。\n",i); } return 0; } ---------------------------------------------------------------- 上のコードを実行すると、初回はscanf()はcharとintの両方とも 入力待ちになってくれるのですが、2回目以降はcharは入力待ちに なってくれません。これは、なぜなのでしょうか? ご教授お願いします。 現在VC++6.0を使用しております。
- ベストアンサー
- C・C++・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・C++・C#
- scanf文がうまくいかないのですが・・・
下のようなプログラムを実行するとうまくいかないのですが、何故なのでしょう。 どうかお教えください。 #include<stdio.h> int main(void) { int i; char n; for(i = 0; i < 10; i++) { printf("nを入力してください>>>"); scanf("%c",&n); printf("%c\n",n); } return 0; }
- ベストアンサー
- C・C++・C#
- scanf関数について(至急回答をお願いします!)
大学1年の者です 学校のプログラミングIの宿題で、教科書(田中敏幸:著 C言語 プログラミング入門 コロナ社発行)の以下のプログラムを入力して、それが正しく実行できたか確認する、という宿題2つが出ました 1つ目の問題とそのプログラムが以下の通りです 問題:scanf関数を用いて整数型変数i, jとdouble型実数変数fに値を代入し、それぞれの値を画面に表示するプログラムを作成せよ [プログラム] /* Hello World 出力プログラム */ #include <stdio.h> int main(void) { int i, j; double f; scanf("%d %d %lf", &i, &j, &f); printf("i=%d j=%d f=%f\n", i, j, f); return 0; } これをデバッグ{デバッグなしで開始(H)}すると、黒い画面に何も表示されなかったのですが、この状態は正常でしょうか? それとも間違っているのでしょうか? プロンプトが関係するのでしょうか?(visual studioに書いたやつをそのままコピペしたため、文字がずれてますがご容赦ください) また、2つ目の問題とそのプログラムが以下の通りです 問題:scanf関数を用いてint型整数変数iとdouble型実数変数fに値を代入し、それぞれの値を画面に表示するプログラムを作成せよ ただし、scanf関数の前にプロンプトを表示させるためのprintf関数を置くこと。 [プログラム] /* Hello World 出力プログラム */ #include <stdio.h> int main(void) { int i; double f; printf("input integer -> "); scanf("%d", &i); printf("input real -> "); scanf("%lf", &f); printf("i = %d, f = %f\n", i, f); return 0; } これをデバッグ{デバッグなしで開始(H)}した結果、黒い画面に「input integer - >」とだけ表示されたのですが、この状態は正常でしょうか? それとも間違っているのでしょうか? これもプロンプトが関係するのでしょうか?(こちらもvisual studioに書いたやつをそのままコピペしたため、文字がずれてますがご容赦ください) よろしくお願い致します
- 締切済み
- 情報工学
- ブラザーインクジェット複合機のエラーについてご質問です。電源を入れても電源を入れ直して下さいというエラーメッセージが表示されます。
- また、スキャンもできずにエラーメッセージが続出し、最終的には画面が消えてしまいます。
- ファックスの送信もできず、パソコンからの印刷はできるもののコピーができない状況です。修理で直せる可能性はあるでしょうか?
お礼
忘れてました。 すみません、馬鹿でした、ありがとうございます。