cin和cout

本文详细介绍了C++中的cin和cout流与缓冲区的概念,通过实例演示如何使用这两个核心输入输出流进行数据交互,并涵盖了流的基础原理、缓冲区的作用以及如何配合getchar()和putchar()实现字符输入输出。
摘要由CSDN通过智能技术生成

cin和cout

本节教你怎么用C++的方式输入输出,比如输出怎么“hello world”。当然,你也可以向你的女朋友输出“I Love you”!

流和缓存区

先别急,要想明白输入输出是怎么回事,就不得不提流和缓冲区

  • “流”即是流动的意思,是物质从一处向另一处流动的过程,是对一种有序连续且具有方向性的数据的抽象描述。

    在计算机系统中是指信息从外部输入设备向计算机内部输入,或者从内存向外部输出设备输出的过程。这种输入输出的过程被形象的比喻为“”。

    简单点讲,流就是信息输入输出的过程。不过在计算机系统中,输入输出的数据在流动的过程要经过缓冲区。

  • 缓冲区

    缓冲区是内存空间的一部分,也就是说在内存空间中预留了一定大小的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区,根据其对应的是输入设备还是输出设备,分为输入缓冲区输出缓冲区

    也就是说,当我使用 scanf("%d",&x) ,并输入10时,10先会被存储在缓冲区中,当我按下回车键时,10才会被scanf函数接收并传给x。

    进一步理解:

    char ch;
    // 输入abcd
    getchar();
    while((ch=getchar())!='\n'){
        putchar(ch);
    }
    // 输出bcd
    

    第一此使用getchar()时,缓冲区无字符,等待用户输入,此时输入abcd,第一个getchar()会读取a,缓冲区中还剩下bcd。后面使用getchar时,因为缓存区中有字符,无需外界输入,getchar会直接从缓冲区中读取,直到读到换行符’\n’为止,所以依次输出b,c和d。

    有趣的是’\n’是哪里来的呢?这是因为你在确认输入时会按下回车键’\r’,这个’\r’会被转化为’\n’同样存储在缓冲区中!

    现在,你能理解为什么有些防止运行窗口闪退的程序一般要加上两个 getchar() 了吧。

    int x;
    scanf("%d",&x);    // 输入 10
    printf("%d",x);    // 输出 10
    getchar();    // 从缓冲区读取 '\n'
    getchar();    // 等待用户输入
    

cin和cout简介

cin – 标准输入流对象cout – 标准输出流对象

大白话就是:cin是和输入有关的对象,cout是和输出有关的对象。

先看一个例子:

int x;
cin >> x;      // 输入x
cout << x;     // 输出x

我们先定义了一个int类型的整数x,然后使用 cin >> x 来从外界输入x的值。运算符 >> 是不是有些眼熟?没错,它在C语言中用于表示 右移运算符(用于位运算),比如 5(101) >> 2 == 2(10)。

在C++中,我们对 >> 的功能进行了扩充,赋予它第二个名字,提取运算符 。cin 和 >> 一起搭配使用,表示将输入流中的数据赋值给 ‘>>’ 右边的变量。

同样的,<< 除了表示左移运算符之外,在C++中还可以表示插入运算符,用于将数据写到标准输出流对象cout中,也就是显示在屏幕上。

进一步使用cin和cout

  • cin和cout包含在头文件 iostream中,使用前需要包含此头文件,如

    #include<iostream>
    using namespace std;
    // using namespace std;
    int main()
    {
        cout << "I love you!";
        return 0;
    }
    
  • 运输符 >> 和 << 可以输入输出一连串的数据,cout还可以输出表达式的值,如

    int x,y,z;
    cin >> x >> y >> z;   // 输入10 11 12
    cout << (x+1) << (y+1) << (z+1);   //输出 11 12 13
    
  • 可以输入输出多种基本数据类型的数据

    不只是整数,浮点数,字符,字符串都可以输入

    int a;
    float b;
    double c;
    char str[20];
    cin >> a << b << c;
    cin >> str;
    
  • cout输出字符串时还可以使用转义字符

    常见转义字符如下。

    转义字符含义ASCll码值
    \a警报7
    \b退格8
    \f换页12
    \n换行10
    \r回车13
    \t水平制表符9
    \v垂直制表符11
    \\\92
    \’39
    \""34
    \??63
    \000
  • cout默认不换行,推荐使用endl来换行

    endl是换行操作符,作用类似’\n’,如

    cout << "hello" << endl;
    // 与cout << "hello" << '\n';作用相同
    
  • 14
    点赞
  • 108
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 答:可以使用以下语句:#include <iostream> using namespace std; int main() { int number; cout << "输入一个数字:"; cin >> number; cout << "您输入的数字是:" << number << endl; return 0; } ### 回答2: 使用cincout可以用于输入和输出数据。下面是一个例子,使用cin来接收用户输入的数字,并用cout来输出该数字的平方值。 ``` #include <iostream> using namespace std; int main() { int num; cout << "请输入一个整数:"; cin >> num; int square = num * num; cout << "该数的平方是:" << square << endl; return 0; } ``` 以上代码先提示用户输入一个整数,然后使用cin来读取该整数的值并存储到num变量中。接着,计算该整数的平方值并存储到square变量中。最后,使用cout输出结果。 ### 回答3: 使用cincout可以用于输入输出的简化和格式化操作。cin用于从标准输入设备(通常是键盘)读取用户输入的数据,而cout用于向标准输出设备(通常是屏幕)输出数据。 下面是一个使用cincout的例子,将输入的两个数相加并输出结果: ```cpp #include <iostream> int main() { int num1, num2; std::cout << "请输入两个整数:" << std::endl; std::cin >> num1 >> num2; int sum = num1 + num2; std::cout << "两个数的和为:" << sum << std::endl; return 0; } ``` 以上代码中,首先使用cout向屏幕输出提示信息,然后使用cin从键盘读取两个整数,并将读取的值存储在变量num1和num2中。接着,将num1和num2相加得到sum,并使用cout将结果输出到屏幕上。最后,返回0表示程序正常结束。 通过使用cincout,我们可以方便地进行标准输入输出的操作,使得代码更加简洁易读。同时,cincout还支持格式化输入输出,如设置输出精度、格式化输出日期和时间等,使得程序的输出结果更符合需求。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值