私はいくつかの計算をしているCコードを持っています(私の質問に無関係、私は信じています)。プログラムは計算のためのいくつかのパラメータを求めます。問題は、コードを実行すると、scanf( "%c"、& ch)が正しく動作していないことです。scanf()は何も入力せずに行く
この問題を再現できるかどうかは、私が何か間違っていないように見えることに興味がありますか?
私は私のプログラムのコンパイル可能で短縮版を投稿しました。
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(void)
{
float Dia_MM, Dia_I, Se1, Se, Sut = 75.00;
float Ka, Kb, Kc, Kd, Ke, Kf;
char Ch;
char Bt;
float Reli;
printf("Please input the surface condition of the shaft: G, M, H or A\n");
scanf("%c", &Ch);
// getchar();
printf("Please input the diameter of the shaft in inch\n");
scanf("%f", &Dia_I);
printf("Please specify whether your shaft is in bending (B) or torsion (T)");
scanf("%c", &Bt);// THIS LINE IS JUST SKIPPED
exit(0);
}
GDBログが表示されて:
Breakpoint 1, main() at main.c:25
25 float Dia_MM, Dia_I, Se1, Se, Sut = 75.00;
(gdb) n
30 printf("Please input the surface condition of the shaft: G, M, H or A\n");
(gdb) n
Please input the surface condition of the shaft: G, M, H or A
31 scanf("%c", &Ch);
(gdb) G
Undefined command: "G". Try "help".
(gdb) n
G
33 printf("Please input the diameter of the shaft in inch\n");
(gdb) n
Please input the diameter of the shaft in inch
34 scanf("%f", &Dia_I);
(gdb) n
4.5
35 printf("Please specify whether your shaft is in bending (B) or torsion (T)");
(gdb) n
36 scanf("%c", &Bt);
(gdb) n //PROBLEM HERE. SCANF() GOES BEFORE TAKE ANY INPUT.
37 exit(0);
を使用することができます「あなたのシャフトは曲げやねじれにあるかどうかを指定してください。」 * chortle * – x0n
@ x0n:私は振動について心配しています:-) – thkala