c语言中cin用法,C++编程中用put输出单个字符和cin输入流的用法

用C++流成员函数put输出单个字符

在程序中一般用cout和插入运算符“<

cout.put('a');

调用该函数的结果是在屏幕上显示一个字符a。put函数的参数可以是字符或字符的ASCII代码(也可以是一个整型表达式)。如

cout.put(65 + 32);

也显示字符a,因为97是字符a的ASCII代码。

可以在一个语句中连续调用put函数。如:

cout.put(71).put(79).put(79). put(68).put('\n');

在屏幕上显示GOOD。

[例] 有一个字符串"BASIC",要求把它们按相反的顺序输出。

#include

using namespace std;

int main( )

{

char *a="BASIC";//字符指针指向'B'

for(int i=4;i>=0;i--)

cout.put(*(a+i)); //从最后一个字符开始输出

cout.put('\n');

return 0;

}

运行时在屏幕上输出:

CISAB

除了使用cout.put函数输出一个字符外,还可以用putchar函数输出一个字符。putchar函数是C语言中使用的,在stdio.h头文件中定义。C++保留了这个函数,在iostream头文件中定义。

[例] 也可以改用putchar函数实现。

#include //也可以用#include ,同时不要下一行

using namespace std;

int main( )

{

char *a="BASIC";

for(int i=4;i>=0;i--)

putchar(*(a+i));

putchar('\n');

}

运行结果与前相同。

成员函数put不仅可以用cout流对象来调用,而且也可以用ostream类的其他流对象调用。

C++ cin输入流详解

标准输入流是从标准输入设备(键盘)流向程序的数据。在头文件iostream.h中定义了cin、cout、cerr、clog 4个流对象(详情请查看:与C++输入输出有关的类和对象),cin是输入流,cout、cerr、clog是输出流。

cin是istream类的对象,它从标准输入设备(键盘)获取数据,程序中的变量通过流提取符“>>”从流中提取数据。流提取符“>>”从流中提取数据时通常跳过输入流中的空格、tab键、换行符等空白字符。

注意:只有在输入完数据再按回车键后,该行数据才被送入键盘缓冲区,形成输入流,提取运算符“>>”才能从中提取数据。需要注意保证从流中读取数据能正常进行。

例如:

int a,b;

cin>>a>>b;

若从键盘上输入

21 abc↙

变量a从输入流中提取整数21,提取操作成功,此时cin流处于正常状态。但在变量b准备提取一个整数时,遇到了字母a,显然提取操作失败了,此时,cin流被置为出错状态。只有在正常状态时,才能从输入流中提取数据。

当遇到无效字符或遇到文件结束符(不是换行符,是文件中的数据已读完)时,输入流cin就处于出错状态,即无法正常提取数据。此时对cin流的所有提取操作将终止。在 IBM PC及其兼容机中,以Ctrl + Z表示文件结束符。在UNIX和Macintosh系统中,以 Ctrl + D表示文件结束符。当输入流cin处于出错状态时,如果测试cin的值,可以发现它的值为false(假),即cin为0值。如果输入流在正常状态,cin的值为true(真),即cin为 一个非0值。可以通过测试cin的值,判断流对象是否处于正常状态和提取操作是否成功。如:

if(!cn) //流cin处于出销状态,无法正常提取数据

cout<

[例] 通过测试cin的真值,判断流对象是否处于正常状态。

#include

using namespace std;

int main( )

{

float grade;

cout<

while(cin>>grade)//能从cin流读取数据

{

if(grade>=85) cout<

if(grade<60) cout<

cout<

}

cout<

return 0;

}

流提取符“>>”不断地从流中提取数据(每次提取一个浮点数),如果成功,就陚给 grade,此时cin为真,若不成功则cin为假。如果键入文件结束符,表示数据已完。

运行情况如下:

enter grade: 67↙

enter grade: 89↙

89 GOOD!

enter grade: 56↙

56 fail!

enter grade: 100↙

100 GOOD!

enter grade: ^Z↙//键入文件结束符

The end.

在遇到文件结束符时,程序结束。如果某次输入的数据为

enter grade: 100/2↙

流提取符">>"提取100,赋给grade,进行if语句的处理。然后再遇到"/",认为是无效字符,cin返回0。循环结束,输出"The end."。

在不同的C++系统下运行此程序,在最后的处理上有些不同。以上是在GCC环境下运行程序的结果,如果在VC++环境(笔者使用win7系统)下运行此程序,在键入Ctrl + Z 时,需要敲击两次回车,程序才输出"The end."。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值