stream input的含义

FAQ 2.13

        C++支持C-style输入,例如sanf()函数族。然儿使用C++自身的输入功能会更好,用C++自身的输入服务,信息从一个输入流对象被读入.例如,cin是一个输入流对象,它被绑定到标准的输入设备,通常是指程序运行时的键盘输入。从语法上看这些C++输入服务可以被当成一个输入流对象。要使用这些功能,需要定义<iostream>头文件

#include <iostream>
#include <string>
using namespace std;

int main()
{
  cout << "What's your first name? ";                <-- 1
  string name;                                       <-- 2
  cin >> name;                                       <-- 3

  cout << "Hi " << name << ", how old are you? ";
  int age;
  cin >> age;                                        <-- 4
}

(1) Line 1

(2) Line 2

(3) Line 3

(4) Line 4

第一行输出提示.这儿不需要flush流,因为当使用cin读入的时候,cout负责自动读出,(可以参考tie成员函数)

第二行创建一个叫做name的string对象.string类是一个标准的类,用来替换字符数组.string对象是安全的,零活的,高效的。这一行也举例说明了C++变量如何定义在程序的中间,这比C程序必须定义在块的开使是个小的进步。

第三行从标准输入读用户的第一个名字并且将结果存储在命名为name的string字符串里。这一行跳过前面的空白(空格,tabs,换行,等等),然后取出并存储跟在变量name后面空白结束符。类似的语法在C里是fscanf(stdin,"%s",name),除了C++版本是安全的(C++字符串对象自动扩展它的缓存来接收用户输入的更多的字符而不受限制,并且不会有内存益处的危险).注意可以用语法

getline(cin, name);读入整行。

第四行从标准输入读入一个整型并把他存储在一个叫做age的整型对象中,类似的语法在C里可以用fscanf(stdin,"%d",&age),可见C++语法是简单的(没有多余的"%d"格式指定,因为C++编译器知道age是整型,并且没有多余的地址操作(&age)因为编译器通过引用传递age参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值