cout语句和cin语句

  • Bjarne Stroustrup 对C语言进行了扩展和创新,取名为 C With Class
  • 到了1983年正式改名为C++,既支持面向过程的编程模式,又新增了 面向对象编程模式和泛型编程模式

HelloWorld

  • vim 01helloworld.cpp
cpp 复制代码
#include <iostream>
    using namespace std;
    int main(void){
    cout << "helloworld!" << endl;
    return 0;
}
bash 复制代码
g++ 01helloworld.cpp -o helloworld 
#或者
gcc 01helloworld.cpp -o helloworld -lstdc++
./helloworld
cpp 复制代码
/*
C++ 使用IO相关的函数时的标准头文件 类似于 stdio.h
C++风格的很多头文件没有.h后缀
C++兼容C, C++中可以使用stdio.h 也提供了C++风格的头文件 cstdio
该头文件一般位于 /usr/include/c++/编译器版本/
*/
#include <iostream>
/*名字空间*/
using namespace std;
int main(void){
/*类似于 printf("helloworld\n")
cout 输出对象
<<, 输出插入运算符
endl, 相当于 '\n'
*/
cout << "helloworld!" << endl;
return 0;
}

数据的输入输出

流的概念

  • C++ 中的输入与输出可以看做是一连串的数据流,输入即可视为从文件或键盘中输入程序中的一串数据流,而输出则可以视为从程序中输出一 连串的数据流到显示屏或文件中
  • 输入流: 从输入设备流向内存的字节序列
  • 输出流: 从内存流向输出设备的字节序列

cout和插入运算符<<

  • 当程序执行都cout语句时,遇到<<运算符就会将要是输出的信息插入到输出流中去,最终将输出流中的数据会被输出到标准输出设备(通常为屏幕)上去
cpp 复制代码
cout<<x;
  • 输出时自动判断基本数据类型的类型
c 复制代码
#include <iostream>
using namespace std;
int main(void){
    int x = 10;
    float y = 1.1;
    char z = 'c';
    /*
    *printf("%d %f %c\n", x, y,z);
    * */
    cout << x <<" "<< y <<" "<< z << endl;
    return 0;
}
  • cout的优势在于自动解析这些基本数据类型,cout也可以格式化输出

cin和析取运算符>>

  • 当程序执行到cin语句时,就会停下来等待键盘数据的输入
  • 输入数据被插入到输入流中,数据输完后按Enter键结束
  • 当遇到运算符>>时,就从输入流中提取一个数据,存入变量x中
cpp 复制代码
cin >>x;
  • 在一条cin语句中可以同时为多个变量输入数据,各输入数据之间用一个或多个空白作为间隔符
cpp 复制代码
#include <iostream>
#include <cstdio>

using namespace std;

int main(void){
    int x, y, z;
    #if 0
    scanf("%d %d %d", &x, &y, &z);
    printf("%d %d %d\n", x, y, z);
    #endif
    cin >> x >> y >> z;
    cout << x << " " << y << " " << z << endl;
    return 0;
}
  • cin具有自动识别数据类型的能力,析取运算符>>根据它后面的变量类型从输入流中为他们提取对应的数据
  • 比如: cin >>x; 假设输入数据2, 析取运算符>>将根据其后x的类型决定输入的2到底是数字还是字符。若x是char类型,则2就是字符;若x是int,float之类的类型,则2就是一个数字。假设输入34,且x是char类型,则只有字符3被存储到x中,4将继续保存在流中
cpp 复制代码
#include <iostream>
using namespace std;
int main(void){
    int a;
    double b;
    char c;
    cin >> a >> b >> c; //12.34a
    cout << "a: " << a << " b: " << b << " c: " << c << endl; //a:12 b:.34 c:'a'
    return 0;
}
相关推荐
Chester_19995 小时前
CSP202203C.计算资源调度器
开发语言·数据结构·c++·蓝桥杯
会周易的程序员7 小时前
给 PLC 写一个字节码虚拟机:STVM 虚拟机架构设计
开发语言·c++·虚拟机·软plc·iec61131·stvm
小灰灰搞电子7 小时前
完全驾驭 Qt 与数据库:C++ ORM 框架 QxOrm 原理与实践指南
数据库·c++·qt
QT界面美化性能优化7 小时前
QT+AI:使用AI技术为QT应用程序赋能
c++·人工智能·qt·opencv·qt教程·qt6.3
学习星球9 小时前
单调栈——从“找下一个更大的“到柱状图中的最大矩形
数据库·c++·算法·leetcode·xcode
小灰灰搞电子10 小时前
C++ 引用折叠详解
c++
布莱克60511 小时前
数组详解:定义、作用、应用场景及与链表的区别(C/C++ 代码讲解)
c语言·开发语言·c++·数组
牛油果子哥q12 小时前
C++内存池与对象池精讲:内存碎片、自定义分配器、对象池实现、STL allocator原理、工程落地与性能对比
java·开发语言·c++
万法若空12 小时前
C/C++ 类型别名定义方式对比
java·c语言·c++
小小晓.13 小时前
C++ 值类别与完美转发深度剖析:从左值右值到 std::forward 源码解密
开发语言·c++·算法