C++输入

来源:互联网 发布:php 安装 sendmail 编辑:程序博客网 时间:2024/06/05 05:53

一、C++中的输入方法

1、cin:

当碰到空格或换行符'\n'时,输入结束:

char a[10],b[10];

cout<<"Enter some input:\n";

cin>>a>>b;

cout<<a<<b<<"End\n";

输出结果为:

Enter some input:

12 34 56

1234END

 2、cin.getline:

当碰到换行符'\n'或达到所能接受的最大字符数时,输入结束:

char a[10];

cout<<"Enter some input:\n";

cin.getline(a,5);

cout<<a<<b<<"End\n";

输出结果为:

Enter some input:

123456

1234END

需要注意的是,a读入了4个字符,不是5个,是因为'\0'占了一位

 3、cin.get:

可以读入任何字符,包括空格和'\n':

cout<<"Enter some input:\n";

char a,b,c;

cin.get(a);cin.get(b);cin.get(c);

cout<<a<<b<<c<<"End\n";

输出结果为:

Enter some input:

AB

CD

那么a的值为'A',b的值为'B',c的值为'\n\

注意:

    在使用get时,必须考虑空格和换行符的处理: 

int n;char c;

cout<<"Enter a number:\n";

cin>>n;

cout<<"Now enter a letter:\n";

cin.get(c);

输出结果为:

Enter a number:

10

Now enter a letter

n的值顺利读入10,但c的值为'\n',因为读入数字10后,输入流中下一个被读取的字符是'\n'

二、如何在键盘中产生EOF用以结束输入

1、通过判断输入是否等于EOF,可以结束输入。

EOF 是个宏,其意思是:End Of File,文件尾标志。 从数值上来看,就是整数-1。

在C语言的头文件中对其进行了宏定义:

libio.h:    # define EOF (-1)

当读文件操作时,遇到文件结束位置或读数据出错均会返回 EOF。 (C语言中所有的输入输出操作均是按读文件的思想来设计的,或者说,是文件操作的一种特例,如getchar()就是fgetc(stdin) 的一个宏 )。int getchar() ; //从标准输入缓冲区读取一个字符,成功返回该字符的ASCII值,出错,返回EOF。

如何在键盘输入时,产生EOF呢? 不同的系统方法不同:

linux系统下,在输入回车换行后的空行位置,按 ctrl+d (先按ctrl键,不放,再按d键);

windows系统下,在输入回车换行后的空行位置,按 ctrl+z,再回车确认。

2、以下代码供参考:

#include <stdio.h>void main(){    int ch;    do {        ch=getchar();        printf("ch=%d\n", ch ); //输出读返回的ch值,读到EOF会输出-1    } while ( ch!=EOF );}

0 0