A. c語言新手提問!!!關於如何輸入EOF終止輸入!!
windows:首先在最後一行結束後(此時未換行)輸入ENTER鍵,新起一行,再輸入ctrl+z,再輸入時ENTER鍵即可。
Linux:直接按CTRL+D快捷鍵
示例:
#include<iostream>
using namespce std;
void main()
{
int a;
while(cin >>a)
{
;//循環輸入的代碼塊
}
}
(1)c語言怎麼停止字元輸入擴展閱讀:
在C語言中,或更精確地說成C標准函數庫中表示文件結束符(end of file)。在while循環中以EOF作為文件結束標志,這種以EOF作為文件結束標志的文件,必須是文本文件。在文本文件中,數據都是以字元的ASCII代碼值的形式存放。ASCII代碼值的范圍是0~127,不可能出現-1,因此可以用EOF作為文件結束標志。
B. c語言中這樣結束字元的輸入(下面是我做的一道題,怎麼結束字元的輸入)
你也可以用某個特殊符號來做結束符,比如#號;
char c = 0;
do
{
c = getchar( );
}
while( '#' != c );
順便說一下,在 Windows 平台下,你按下一次 Enter 回車鍵,會生成兩個字元;
一個是 '\r',一個是 '\n';
而 Linux 和 Unix 平台則只生成 '\n' 字元;
所以在 Windows 下如果要判斷是否按下了回車鍵,需要判斷兩個字元,比較麻煩;
C. C語言中,怎麼用EOF結束輸入
windows:
首先在最後一行結束後(此時未換行)輸入ENTER鍵,新起一行,再輸入ctrl+z,再輸入時ENTER鍵即可。
Linux:
直接按CTRL+D快捷鍵
示例:
#include<iostream>
using namespce std;
void main()
{
int a;
while(cin >>a)
{
;//循環輸入的代碼塊
}
}
(3)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 );} /*逐個字元進行復制*/
}
D. C語言,不知道如何結束輸入
假定 按習慣, 用 Ctr-C 或 按 ESC 退出程序,不斷輸入,不斷更新 sp 和 cr/lf 計數:
#include <stdio.h>
#include <stdlib.h>
void main()
{
int c;
int sp=0,lf=0;
while ( 1 ){
c= getch();
if (c == ' ') sp++;
if (c =='\n' || c=='\r') lf++; // 你可以修改這句,看你用 new-line 控制 還是 CR
if (c == 0x001b || c == 0x0003) break; // ESC or Ctr-C 結束
printf("\r%d %d",sp,lf); //不斷更新計數
}
}
E. c語言怎樣輸入一串字元讓程序停止
你好
很高興為你解答
答案是:將讀入的字元串與你預設的字元串(比如exit)作比較,如果相同就break退出循環,程序就退出了。
滿意請採納,謝謝
F. C語言如何做到回車停止輸入
呵呵,這個問題我也想過,想出了一個不怎麼成熟的辦法。
#include<stdio.h>
void
main()
{
int
a[100],num=0;
char
k;
do
{
scanf("%d",&a[num]);
num++;
k=getchar();
}while(k!='\n'&&num<100);
}
這樣以空格隔開各個數字,輸入若干以後按回車即可。
但是容錯性不好,如果結尾在按回車前多輸入了一個空格,那麼將繼續循環。
如果提升了容錯性,那麼代碼將變得比較復雜。
G. 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;
}
}
H. C語言問題:怎樣在輸入的時候中斷輸入啊
用這里一句吧
while((a[i]=getchar())!='\n')
i++;
你應該要定義
char a[10]
因為你是遇到字元'\n'結束的
I. C語言在輸入一維數組時,如果想要用回車停止輸入,那麼這種寫法對嗎
這還真有點小學問,如果是字元數組,if(a[i]!=' ') break;就可以了,但得把不需要的那個' '從數組中用a[i]='