我只是想問問有什麼用getch()
的重要性,尤其是在這個陣列/ for循環的例子,我們的教授向我們展示:重要性使用裏面的getch()的for循環
int i;
char pw[7], ch;
printf ("\npw: ");
for (i=0; i<7; i++) {
ch = getch();
pw[i] = ch;
printf ("%c", ch);
}
我嘗試刪除ch = getch()
行,當我運行該程序時發生的事情是該循環一直持續。
爲什麼會發生這種情況?
我只理解getch()
用於程序結束時不顯示屏幕上的字符(來自在線定義)。
「永恆的循環。」你確定?無論'getch'是否存在,該循環都應該在7次迭代後終止。 – kaylum
當我編譯並運行它時,程序永不停止;;也許在dev-C++中有一個小故障? @kaylum – fujisaki
我非常懷疑編譯器有這樣一個簡單程序的錯誤。當程序在沒有'getch'行的情況下運行時,你看到了什麼?有什麼打印? (這意味着'ch'是未初始化的,因此程序在技術上會調用未定義的行爲,但它仍然不應該導致您聲稱的行爲)。 – kaylum