注册 登录
编程论坛 C++教室

一个很弱的问题,cin的具体用法??

zhoulikelvjj 发布于 2007-10-14 23:50, 988 次点击
#include<iostream>
using namespace std;
int main()
{
float t,tc,tf;
char corf;
const float fac=1.8,inc=32;
cout<<"Enter temperature: ";
cin>>t; // 输入温度值
cin>>corf; // 指出是攝氏(C)或华氏(F)

if(corf=='c'||corf=='C')
{
tc=t;
tf=t*fac+inc;
}
else
if(corf=='F'||corf=='f')
{
tf=t;
tc=(t-inc)/fac;
}
else tc=tf=0.0;
cout<<endl<<"The temperature is: ";
cout<<tc<<"C="<<tf<<"F\n";
return 0;
}
程序运行结果如下:
Enter temperature: 40.2C
The temperature is 40.2C=104.36F


cin的具体用法??自己会区别整型跟字符型???
4 回复
#2
Janlex2007-10-15 02:51
cin是类
>>是运算符重载


cin
{
public:
cin operator >> (int &);
cin operator >> (double &);
cin operator >> (string &);
cin operator >> (char &);
//......
}
#3
o0花生0o2007-10-16 23:39

这里cin是标准输入流,在程序中与标准输入设备(通常指键盘)相关联。
表示将从标准输入设备读取的数值传送给右方指定的变量
cin>>t;用户从键盘输入的数值将自动转变为t的类型,并存入变量t中
t必须是基本数据类型,但不能是void型
#4
askCpp2007-10-17 20:49
错了,cin是istream类的一个对象,重载的
以下是引用Janlex在2007-10-15 2:51:18的发言:
cin是类
>>是运算符重载


cin
{
public:
cin operator >> (int &);
cin operator >> (double &);
cin operator >> (string &);
cin operator >> (char &);
//......
}
错了,cin是istream类的一个对象,重载的<<操作符函数应该是这样:
isteram& operator <<(istream& is,const classname& cn);
其中classname是要重载<<操作符的类

[此贴子已经被作者于2007-10-18 10:15:50编辑过]

#5
askCpp2007-10-17 20:57
以下是引用o0花生0o在2007-10-16 23:39:00的发言:

这里cin是标准输入流,在程序中与标准输入设备(通常指键盘)相关联。
表示将从标准输入设备读取的数值传送给右方指定的变量
cin>>t;用户从键盘输入的数值将自动转变为t的类型,并存入变量t中
t必须是基本数据类型,但不能是void型

错了,t可以是任意类型,不仅仅只可以是基本数据类型
例如,STL中的string类表示一个字符串,这个类中就定义了<<操作符
可以这样写:cin>>str,str是string类的一个对象
不过这样只能读取一个单词
要读取整行,string定义了一个非成员函数getline
这个函数将读取过程一直进行下去,直到到达行尾,文件尾或string对象被填满
所以读取一行字符串可以这样写:getline(cin,line);line是string类对象

1