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]='