《C++ Primer Plus》学习随记1---模拟EOF

EOF(文件结束符)—“End Of File”。通常,EOF被定义为值-1。
几种检测模拟EOF结束输入的代码实现:
1、eof(),fail()
从输入流读取数据,
eof( )——如果检测到EOF,cin.eof()返回true,否则返回false
fail( )——用来判断一个流是否“坏”掉了。如果failbit、badbit中任意一种或两种被设置,则fail()返回true,否则返回false。

#include <iostream>
int main()
{	
	using namespace std;
	char ch;
	int count=0;
	cin.get(ch);
	while(cin.fail()==false)  //while(!cin.fail())
	{	
	cout<<ch;
	count++;
	cin.get(ch);
}
cout<<endl<<count<<" characters read\n";
return 0;
}

2、cin.get(char)——接受一个char类型参数
cin.get(char)返回值是一个cin对象,读取成功cin转传成bool值true,否则为false。

while(cin.get(ch))
{
	...
}

3、cin.get()——不接受任何参数
不接受任何参数的cin.get()成员函数返回输入中的下一个字符(将字符编码作为一个int值返回),工作方式与getchar()类似。
ch=cin.get();//ch应为int类型
cout.put(char)接收一个char类型参数,工作方式类似putchar()。可以传递一个int类型的参数给他,但该参数将被转换为char类型。
cout.put(ch);

#include <iostream>
int main()
{
	using namespace std;
	int ch;
	int count=0;
	while((ch=cin.get())!=EOF)	
	{
	cout.put(ch);
	count++;	
}	
cout<<endl<<count<<" characters read\n";
return 0;
}

EOF不是有效字符编码,与char类型不兼容,所以使用此方法时返回值应赋给int类型变量ch。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值