第一章 C++ 我来了——1.2 初窥输入/输出

本文介绍了C++中的标准输入输出库iostream的基本使用方法,包括如何利用std::cout进行输出及std::cin进行输入,并解释了命名空间std及作用域操作符::的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.2 初窥输入/输出


前言:C++并没有直接进行输入或输出(IO)的任何语句,想要实现输入与输出,需要用到标准库。最常用的为处理格式化输入和输出的iostream库,其基础是两种命名为istreamostream的类型(What the hell the 类型 is? Class?)。

1.2.0 程序先走起吧


#include <iostream>
int main()
{
  std::cout << "Enter two number:" << std::endl;
  int v1, v2;
  std::cin >> v1 >> v2;
  std::cout << "The sum of " << v1 << " and " << v2 << " is " << v1+v2 << std::endl;

  return 0;
}

1.2.1 标准输入与输出对象


哎,上面的程序对于我一个C++初学者来说实在是看不懂啊,虽然已经名义上做了两年码农了。不过不用怕,慢慢来!
标准库定义了4个IO对象,它们是:

  1. 处理输入时使用的istream类型对象:

    std::cin // called see-in
  2. 处理输出时使用的ostream类型对象:

    std::cout // called see-out
  3. 用来输出警告和错误信息给程序使用者的对象:

    std::cerr //called see-err
  4. 用于产生程序执行的一般信息的对象:

    std::clog //called see-log

    这样一来,上述程序中的好动东东知道是干啥的了,输入输出用的嘛。

Keys:

  • #include <iostream>是个预处理指示,尖括号里面是一个头文件名字,要用到人家嘛当然要写上人家的名字喽。
  • std::cout中的std是个什么鬼东西哎?!好吧,是命名空间(namespace)奥。::是作用域操作符(scope operator),很明显,指的就是std中的cout喽!

1.2.2 写入到流


上文提到了用于输出的istream类型对象std::cout是用来写入到流的,那么我们可以用输出操作符<<把要写入的内容添加到std::cout当中。

std::cout << "Enter two numbers:" << std::endl;

因为输出操作符<<返回的是一个stream类型的对象,因此在上述代码中,连续使用两个<<其实是与下句等价的。

std::cout << "Enter two numbers:";
std::cout << std::endl;

值得一提的是,std::endl是一个特殊值,称为操纵符(manipulator)。将它写入到输出流时,具有输出换行的效果,同时能够刷新与设备相关的缓冲区(buffer)

Tips:

  • 在调试程序的时候,往往需要插入输出语句,这些语句都应该刷新输出流std::endl!否则,在程序出现错误的时候,可能会导致输出停留在buffer中,造成程序崩溃位置的错误判断

1.2.3 从流读入


int v1, v2;
std::cin >> v1 >> v2;

看了上面的写入到流,这里也就不难理解啦啊,从流中读入并赋值给v1v2

习题,科科


Tips:

讲真,在写C++程序时,通常可以使用换行符代Enter替代空格符space。但是有两种情况下不行奥:

  • 字符串字面值中的空格不能用换行符替代
  • 在预处理指示(忘记是啥了?就是用到人家时要加上人家名字的头文件哎,伤脑筋)中的空格不能用换行符替代

所以,下面的Code依然work

#include <iostream>
int main()
{
  std::cout << "Enter two number:" 
  << std::endl;

  int v1, v2;

  std::cin >> v1
  >> v2;

  std::cout << "The sum of " 
  << v1
  << " and " << v2
  << " is " << v1+v2 
  << std::endl;

  return 0;
}

漂亮的配色方案是得分享一下哈!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值