⑴ 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循環語句,所以執行完一個之後會執行另一個,這個沒有什麼問題的,等它運行到結束時是會結束的。