我想爲我的計算機課程做一個問題,但我遇到了麻煩。問題在於長度需要從小河的左邊到右邊的長度的渡輪,我確信有人聽說過它。我唯一的問題(我有一個好主意如何做大部分代碼,只是碰到了一個障礙)是我要麼陷入一個無限循環,要麼我的嵌套循環退出for循環,它嵌套在底部附近。我的代碼如下:正確清除鍵盤緩衝區
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
int testCases;
int ferrySize;
int numOfCars;
char riverSide; // what side of river is the car on?
char c; // eats unnecessary characters
int test=1;
int i,j=0;// counters for "for" and "while" loops
int carLength;
const int cm_to_m=100;
printf("How many tests would you like to have?: ");
scanf("%d", &testCases);
printf("how long is the ferry in meters and how many cars are there?: ");
scanf("%d", &ferrySize);
ferrySize=ferrySize*cm_to_m;
scanf("%d", &numOfCars);
printf("cases %d ferrysize %d cars %d\n", testCases, ferrySize, numOfCars);
printf("\nhow long is each car (in cm) and what side is it on?\n(seperate this info with a space)\nseperate each car by new lines.");
for(i=0; i<=numOfCars;i++);
{
scanf("%d", &carLength);
scanf(" %c", &riverSide);
printf("%c", riverSide);
do
{
scanf("%c", &c);
printf("%c", c);
}while(c!='t' && c!='T');
printf("%c", riverSide);
}
return 0;
}
對於掃描字符,請使用'的getchar()',而不是'的scanf( 「%C」,... )'。 'scanf()'在掃描字符方面很差。 –
我的教授出於某種原因教導我們使用scanf代替。我認爲他希望我們由於某種原因而忽略空白字符?另外,我嘗試了getchar函數,以便它可以修復它 - 它具有與scanf相同的效果。退出程序(儘管不會崩潰),好像它已經完成了所有的事情,儘管for循環仍然應該運行。 – msd94
你能給出一個樣本輸入和期望的輸出嗎? – emsworth