當前位置:首頁 » 編程語言 » c語言輸出停不下來
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言輸出停不下來

發布時間: 2022-12-20 14:45:21

c語言...讀取文本文件並列印出來...為什麼停不下來

#include "stdio.h"
int main()
{
FILE *fp;
char ch;
fp=fopen("c:\\aaa.txt","rt");

while(ch!=EOF) //判斷從文件讀入的字元是否是文件結束.
{
ch=fgetc(fp);
printf("%c",ch);
}
fclose(fp);
printf("\n");
return 0;
}

⑵ C語言里,這個語句怎麼終止 while((c=getchar())!=EOF) 根本停不下來啊

可以結束,輸入ctrl+z回車。
方法是按住ctrl鍵不放,再按下z鍵盤,屏幕上會出現」^Z「的樣子,然後回車。
如果還不行,可以嘗試多輸入幾次ctrl+z回車。這是因為程序有問題,是輸入緩沖問題,循環體中有其他輸入語句,其後應該加fflush(stdin);來清除輸入緩沖

⑶ c語言列印九九乘法表,程序停不下來

第二個for循環里 i++改成j++

⑷ 下面C語言為什麼輸入字母d會無限循環輸出printf("請輸入命令符:\n");語句,數字5以上就不會無限輸出

圖中框內的scanf語句是要輸入一個整數,如果輸入非數字這個函數就會失敗,但程序不會退出。還有最大的問題它不會把你輸入的非數字字元從輸入緩沖區移除,所以下次執行scanf時還是字元輸入失敗。不僅僅是輸入d只要是非數字都會無限循環輸出printf。

有兩種方法可以改,一是在scanf語句後面加入while(getchar() != ' ');每次輸入完把輸入緩沖期字元移除;

第二種判斷scanf的返回值,if(scanf("%d",&num)!=1)

{

加入輸入失敗你想怎麼處理

}

⑸ 在C語言中加入什麼可以讓輸出結果停留

getch();

getch()函數是無回顯的從控制台取得一個字元。以利用getch()函數讓程序調試運行結束後等待編程者按下鍵盤才返回編輯界面,即任意鍵繼續效果。

#include

#include

void main( )

{

printf("This is a C program. ");

getch() ;

}

(5)c語言輸出停不下來擴展閱讀:

getch();注意事項

1、所在頭文件是conio.h。而不是stdio.h。

2、在使用之前要調用initscr(),結束時要調用endwin()。否則會出現不輸入字元這個函數

也會返回的情況。

3、在不同平台,輸入回車,getch()將返回不同數值,而getchar()統一返回10(即 )

windows平台下ENTER鍵會產生兩個轉義字元 ,因此getch返回13( )。

unix、 linux系統中ENTER鍵只產生 ,因此getch返回10( )。

MAC OS中ENTER鍵將產生 ,因此getch返回13( )。

⑹ c語言中的問題 怎樣讓他輸出一個數就停下來

printf("%d\n",a*i);
在這句後面加上一個
getchar();
用於獲取一個字元,你每按一下鍵盤輸出一個數

⑺ C語言:輸入\之類的話 for語句會一直往下循環輸出,如何終止

輸入之類的話 for語句會一直往下循環輸出,是因為程序需要讀入一個整數,但是輸入的非法字元會一直停留在輸入緩沖區中,要想終止,可以按下Ctrl+Break終止循環。

正面的程序已經幫你改好了:

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

int main()

{ int a, b,i;

srand((unsigned)time(NULL));//使用時間作為參數來生成隨機數

a = rand() % 100 + 1;

printf("《C語言程序設計》翻轉課堂—猜數游戲 歡迎來到猜數游戲 游戲說明:該程序將會生成1~100之間的整數,然後就由您負責猜數,同樣也要輸入1~100之間的整數,不許耍賴哦! ");//對游戲進行說明

for (i =1; i >0; i++)

{ fflush(stdin);

printf(" 請輸入你想要猜的數字:");

scanf("%d", &b);

if (b == 0)

{ printf(" 感謝您的遊玩,期待下次能再與你相遇^O^ ");

break;

}

if (b > 100 || b < 1)

{ printf(" 不許耍賴亂輸數字,你到底想不想贏 ̄へ ̄ ");

fflush(stdin);

}

else

{ if (a == b)

printf(" 恭喜您猜對啦!!!o(^▽^)o 本次程序的隨機數就是%d ", a);

else

printf(" 抱歉您沒有猜對(╥╯^╰╥) 本次程序的隨機數是%d ", a);

printf("本次游戲結束啦,喜歡的話可以繼續^O^,如果不想玩了輸入0就可以退出哦 ");

}

}

printf(" 編寫成員:楊天晟、付京華");

return 0;

}

⑻ c語言這段代碼為什麼停不下來

個人理解,不知道對不對哈:
1、strlen(char *)返回的值是unsigned int類型;
2、c語言中不同類型數據的計算結果以順次遇到的最高優先順序為准,unsigned高於int,所以strlen("HELLO")-6的結果(-1)應為unsigned int類型,而(unsigned)-1=2^32-1=4294967295,也就是說第一段代碼並不是死循環,會在輸出4294967295個0後終止,這需要相當長的時間來完成,造成了你說的「停不下來」的錯覺(也許幾小時也許幾天,我也不知道......)
3、你若想讓代碼1取得代碼2的效果,可以強制轉換一下數據類型,改成for (int i=0; i<(int)strlen("HELLO")-6; i++)
printf("0");

⑼ c語言for循環為什麼無法終止

因為你有兩個for循環語句,所以執行完一個之後會執行另一個,這個沒有什麼問題的,等它運行到結束時是會結束的。