c語言怎麼結束輸入
㈠ c語言中怎麼結束輸入啊
1、打開軟體,直接使用int類型來定義一個變數用於保存getchar()返回的字元類型。
㈡ C語言中如何實現輸入輸出多組數據,該如何結束輸入
c語言中實現多組數據輸入輸出主要有兩種方式:
1.首先輸入一個n,表示將有n個輸入輸出,例如:
#include
int main()
{
int n,a;
scanf("%d",&n);
while(n--){
scanf("%d",&a);
printf("輸出:%d\n",a);
}
return 0;
}
/*
運行結果:
3
255
輸出:255
156
輸出:156
125
輸出:125
*/2.使用while(scanf("%d",&n)!=eof){}語句,直達輸入ctrl+z,結束輸入,例如:
#include
int main()
{
int a;
while(scanf("%d",&a)!=eof){
printf("輸出:%d\n",a);
}
return 0;
}
/*
運行結果:
54
輸出:54
5156
輸出:5156
21
輸出:21
^z
*/
㈢ c語言程序設計 怎麼以輸入EOF結束
EOF(End Of File)是C語言中的文件結束標志符。當C語言輸入函數獲取到文件結尾標志時,會通過返回值的方式體現該值。
所以要以輸入EOF為結束,就需要判斷輸入函數的返回值。
EOF定義在stdio.h中,與常用的輸入函數相同,所以不需要額外引用頭文件。
以下根據輸入函數不同,分別說明EOF的判斷。
1 getchar
getchar函數的功能是讀入一個字元。適用於逐個字元輸入的情況。
其返回值為int型,常見的做法是賦值給char型變數,但如果要檢查EOF,則必須將返回值賦值給int型。
代碼:
intc;
while(1)
{
c=getchar();//讀入一個字元。
if(c==EOF)break;//如果遇到EOF則退出循環,即結束輸入。
}
2 scanf
scanf是最常用的C語言輸入,其作用為格式化輸入,可以用來輸入各種類型的變數值。
以int型為例:
intc,ret;
while(1)
{
ret=scanf("%d",&c);//讀入一個整型值。
if(ret==EOF)break;//如果遇到EOF則退出循環,即結束輸入。注意判斷的是返回值,而不是讀入的變數。
}
3 gets
gets作用是讀入一行數據,存到字元數組中,並把讀到的換行符轉換為字元串結束符。
正常情況下其返回值為傳入的指針,當遇到EOF時,其返回NULL(空指針)。
所以用gets讀入時可以這樣判斷:
chars[100];
while(1)
{
if(gets(s)==NULL)break;//當gets返回NULL時代表遇到EOF,結束輸入。
}
當輸入為文件時,遇到文件結尾C語言可以自動識別EOF,但如果輸入為命令行交互模式,那麼需要手動輸入EOF. 在windows平台輸入EOF的方法為,同時按下ctrl和z鍵。如果是unix/linux平台,則需要同時按下ctrl+d鍵。
㈣ 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語言如何實現scanf若什麼都沒輸入直接回車則結束輸入
你列舉的這幾個都是多組數據輸入循環;這些循環是沒有結束標志的;按回車是進入下一次循環;加一個if---break;條件判斷結束循環;
if(.......)
{
.........;
break;
}
do{
scanf("%d",&a);
}while(getchar()!='\n');//遇到回車符結束;就是scanf函數不輸入任何數,按回車直接結束循環;
for(int i=0;getchar()!='\n';i++)//這也是以回車符結束輸入;
scanf('%d",&a[i]);
while(getchar()!='\n')//同上;
scanf('%d",&a[k++]);
㈥ C語言中,怎麼用EOF結束輸入
windows:
首先在最後一行結束後(此時未換行)輸入ENTER鍵,新起一行,再輸入ctrl+z,再輸入時ENTER鍵即可。
Linux:
直接按CTRL+D快捷鍵
示例:
#include<iostream>
using namespce std;
void main()
{
int a;
while(cin >>a)
{
;//循環輸入的代碼塊
}
}
(6)c語言怎麼結束輸入擴展閱讀:
C語言中,當把數據以二進制形式存放到文件中時,就會有-1值的出現,此時不能採用EOF作為二進制文件的結束標志。為解決這個問題,ANSI C提供一個feof函數,用來判斷文件是否結束。
如果遇到文件結束,函數feof(fp)的值為1,否則為0.feof函數既可用以判斷二進制文件是否結束,也可以用以判斷文本文件是否結束。
例如:編寫程序,用於把一個文本文件(源文件)復制到另一個文件(目的文件)中。源文件名為file_a.dat,目的文件名為file_b.dat。程序如下:
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
void file(FILE *,FILE *);
main ( )
{
FILE*fpin,*fpout;
fpin =fopen ("file_a.dat","r"); /*打開輸入文件*/
fpout = fopen ("file_b.dat","w"); /*打開輸出文件*/
file( fpin,fpout ); /*把fpin所指文件中的內容輸出到fpout所指文件中*/
fclose ( fpin );fclose ( fpout ); /*關閉輸入輸出文件*/
}
void file( FILE *fpin, FILE *fpout )
{
char ch;
ch = getc ( fpin ); /*先讀一次文件再去判文件是否結束*/
while ( !feof( fpin ) ) /*當未到文件末尾是進行循環*/
{
putc ( ch, fpout ); ch= getc ( fpin );} /*逐個字元進行復制*/
}