當前位置:首頁 » 編程語言 » c語言當輸入退出控制字元時結束
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言當輸入退出控制字元時結束

發布時間: 2023-08-23 21:42:34

c語言中怎麼結束輸入啊

1、打開軟體,直接使用int類型來定義一個變數用於保存getchar()返回的字元類型。

⑵ 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語言如何在輸入一串字元後按esc鍵結束

用getch();頭文件為conio.h
getch();為不回顯函數,當用戶按下某個字元時,函數自動讀取,無需按回車。
ESC的鍵碼為27,即調用getch();獲取到值後判斷是否為27,是則退出,否則繼續.

⑷ 大佬們,(C語言)為什麼我輸入完字元串後程序直接結束了,明明我K還沒輸入

在兩個scanf或scanf_n函數之間,加上"getchar();"。
之所以調用getchar函數,是因為要處理第一個scanf_n函數未處理但留在輸入流中的換行符,否則第二個scanf_n函數直接讀取這個換行符,結果是輸入一次,程序直接退出。

⑸ c語言輸入字元串結束的標志

C語言中字元串的結束標志是【''】。C語言中沒有專門的字元串變數,通常用一個字元數組來頃胡存放一個字元串,字元串總是以【''】作為結束符。


''就是8位的00000000,因為字元類型中並沒有對應的這個字元,所以這么寫。''就是字元串結束標志。


''是轉譯字元,意思是告訴編譯器,這不是字元0,而是空字元。空字元對應的二進制為00000000,而數字0為00110000。


原來,在C語言中沒有專門的字元串變數,通常用一個字元數組來存放一個字元串。字元串總是以''作為串的結束符。因此當把一個字元串存入一個數組時,也把結束符''存入數組,並以此作為該字元串是否結束的標志模胡。有了''標志後,就不必再用字元數組的長度來判斷字元串的長度了。


說明:


把一個字元串賦值給數組:u8str1[]={"cxjr.21ic.org"};實際上數組str1在內存中的實際存放情況為:cxjr.21ic.org''。這後面的''是由C編譯系統自動加上的。所以在用字元串賦初值時一般無須指定數組的長度,而由系統自行處理。把字元數組str1中的字元串拷貝到字元數組str2中。串結束標志''也一同拷貝。


個案:


1、當數組長度不夠。假設我們指定了數組長度,如:u8str1[13]={"cxjr.21ic.org"};由於字元組str1的長度為13,所以後面的信息會丟失,即''丟失。


2、如果在給數組賦值時,把每個字元單獨用引號括起來。也會丟失''。如:u8str1[]={'c','x','j','r','.',ƈ',Ƈ','i','c','.','o','r','g'};如果希望數組以''結束,則可以寫成以下三者之一:


u8str1[]={"cxjr.21ic.org"};//字元串賦值


u8str1[]={'c','x','j','r','.',ƈ',Ƈ','i','c','.','o','r','g',''};//人工添加


u8str1[14]={'c','x','j','r','.',ƈ',Ƈ','i','c','.','o','r','g'};//故意旦乎攔給數組預留一個空位


代碼示例:


#include


#include


#inclu


⑹ C語言中如何以一個指定字元結束輸入並輸出結果,而不用按回車.

C語言中如何以一個指定字元結束輸入並輸出結果,而不用按回車. 思路:可以利用while循環依次輸入,並判斷輸入的字元是否是結束字元,如果時就結束輸入並輸出輸入的字元。

參考代碼:
#include<stdio.h>int main(){ int n=0,i; char a[100]; while(scanf("%c",&a[n++])){ if(a[n-1]=='#')輸入#就結束輸入 break; } for(i=0;i<n-1;i++) printf("%c ",a[i]); printf("\n"); return 0; } /*輸出:qewq#afq e w q */

VBA如何實現按回車鍵輸入一個指定字元
定義按鈕txtA
Private Sub txtA_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
txtA.Text = txtA.Text + "A"
End If
End Sub
c語言如何做到輸入回車換行而不是輸出結果
拍入Enter健時, c語言 通常 略去 回車,而只取用 換行鍵。
一定要輸入 回車,你可以用輸入 ASCII 值 13 代替。
例如,你拍入數值13和Enter健,用下面程序,則 s[0] 讀到回車,s[1]讀到換行 :
char s[10];
scanf("%d",&s[0]);
s[1]=getchar();
printf("%c %c\n",s[0],s[1]);
printf("%02x %02x",s[0],s[1]); 輸出它們的16進制ASCII碼值 0d 0a

c語言為什麼輸入數字按回車鍵得不出結果
估計是你的代碼有問題,建議把問題說詳細一點,順便發一下代碼或者截圖。
c語言中先輸出kb個空格,在輸出n個指定字元
for (i=0;i<kb;i++) printf(" "); 輸出kb個空格,不換行
for (i=0;i<n;i++) printf"%c", z[i]); 輸出n個指定字元, 假定字元已存於 字元數組 z.
例如:
int i,kb=10,n=10;
char z[10] = {'a','b','c','d','9','8','7','6','Y','Z'};
for (i=0;i<kb;i++) printf(" "); 輸出kb個空格,不換行
for (i=0;i<n;i++) printf"%c", z[i]);
c語言中如何在讀入字元串時如何遇到指定字元結束?
標准C中沒有提供這樣的函數,可以自定義一個這樣的函數,以實現getline()函數的功能。參考代碼如下:
int get_str( char *s, int size, const char ch='\n' ) 如果不輸入第三個參數,默認為回車符{ int i; for( i=0;i<size-1;i++ ) { s[i]=getchar(); 讀入一個字元 if ( s[i] == ch ) 遇到指定字元,結束輸入 break; } s[i]='\0'; 字元串結束符 return i; 返回讀入字元串數據的長度}void main(){ char str[10]; get_str( str, sizeof(str), '#' ); 以#結束 printf("input is :%s\n", str ); fflush(stdin); 清除緩存中的殘余數據 get_str( str, sizeof(str) ); 以回車結束 printf("input is :%s\n", str );}

C語言:編寫一個程序,接受一個用戶輸入的一行字元,按回車結束
int main()
{
char str[100],*p;
int cout[4]={0};
scanf("%[^\n]",&str);
p=str;
while(*p)
{
if((*p>='A'&&*p<='Z')||(*p>='a'&&*p<='z'))
cout[0]++;
else if(*p==' ')
cout[1]++;
else if(*p>='0'&&*p<='9')
cout[2]++;
else
cout[3]++;
p++;
}
printf("\nletter=%d,blank=%d,number=%d,other=%d\n",cout[0],cout[1],cout[2],cout[3]);
return 0;
}
c++怎麼循環輸入,並且按回車結束輸入
一般一次輸入一行。當用戶某次輸入某個特殊的字元串時,結束循環
用C語言編寫程序:從鍵盤輸入一串字元,按回車鍵後結束,最後將字元串在屏幕上輸出。
#include<stdio.h>
void main()
{
char *p[20];
printf("\n Please input some chars:");
scanf("%s",p);
printf("\n You inputed: %s\n",p);
getchar();
}
注意,該程序最多可輸入20個字元,如果要更多,自己把*p[20];里的數字改得列大就行了
C語言中輸入一個字元串已@為結束符
#include<stdio.h>
void main()
{ int i;
char a[100];
for(i=0;i<100;i++)
{
if(getchar()!='@'
a[i]=getchar();
else break;
}
}