数据的输入输出(C++)

1.1 第一个c++程序

  • 编写程序
shell 复制代码
vi 01helloworld.cpp
cpp 复制代码
#include <iostream>
using namespace std;
int main (voi d) {
    cout << "hello world!" << std;
    return 0;
}
  • 编译运行
shell 复制代码
gcc helloworld.cpp -o helloworld -lstc++ #或者

g++ helloworld.cpp -o helloworld

.helloworld
  • 简单分析

    • 文件名

    C++文件一般命名为.cpp后缀

    • 代码
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) {
      /*输出*/
      cout << "hello world!" << std;
      return 0;
  }

1.2 数据的输入输出

1.2.1 流的概念

在C语言中输入/输出看做数据缓冲区 ,而C++中是一连串的数据流

输入流:从输入设备流向内存的字节序列。

输出流:从内存流向输出设备的字节序列。

1.2.2 cout 和插入运算符<<

cpp 复制代码
#include <iostream>
#include <stdio.h>
using namespace std;

int main (void) {

	int a = 2;
	float b = 3.12;
	char c = 'c';
	
	printf("%d,%f,%c\n", a, b, c); // 2,3.120000,c
	cout << a << ", " << b << ", " << c << endl; // 2, 3.12, c

	return 0;
}

cout的优势在于自动解析这些基本数据类型;

1.2.3 cin和析取运算符>>

cpp 复制代码
cin >> x

当程序执行到cin语句时,就会停下来等待键盘数据的输入,输入数据被插入到输入流中,数据输入完后按Enter键结束。当遇到>>时,就从输入数据流当中提取一个,存入变量x中。

需要说明的几点内容

  • 在一条cin语句中可以同时为多个变量输入数据。各输入数据之间用一个或多个空白作为间隔符。

  • cin具有自动识别数据类型的能力。析取运算符>>根据他后面的变量类型从输入流当中为他们提取对应的数据。

    比如cin >> a >> b >> c;

    假设输入:13.45b,析取运算符>>将根据其后a、b、c类型决定输入的13到底是数字还是字符,以此类推。例子最后代表性:

cpp 复制代码
#include <iostream>
#include <cstdio>

using namespace std;

int main (void) {

	int a;
	double b;
	char c;

    /*
	scanf("%d %lf %c", &a, &b, &c);
	printf("%d %f %c\n", a, b, c);
	*/
	cin >> a >> b >> c;  //输入:13.45b
	cout << a << " " << b << " " << c << endl; // 输出:13 0.45 b
	return 0;
}
相关推荐
阿米亚波5 分钟前
【C++ STL】std::unordered_multiset
开发语言·数据结构·c++·笔记·stl
随意起个昵称11 分钟前
贪心模型-Johnson法则
c++·算法
蜡笔小马12 分钟前
【保姆级教程】Windows 下 CGAL 6.2 + VS2022 全流程实战:从源码编译到项目集成(附避坑指南)
c++·cgal
我是唐青枫15 分钟前
Java ReentrantLock 实战详解:比 synchronized 更灵活的可重入锁
java·开发语言
QH1392923188025 分钟前
# R&S ZNB43 ZNA43 ZNA67矢量网络分析仪
开发语言·网络·php
xiaoye-duck34 分钟前
《Linux系统编程》Linux 系统多线程(八): C++ 高并发线程池全链路深度解析与从零手撕实现
linux·c++·线程池
旋生万物34 分钟前
电磁力 = 螺旋联络的 90° 旋转?麦克斯韦方程组的几何重构
人工智能·python·算法·机器学习·copilot·世界模型·物理ai
余俊晖1 小时前
多模态大模型细粒度视觉理解:Vision-OPD在线策略自蒸馏技术方案概述
人工智能·深度学习·算法·多模态·opd
胖大和尚1 小时前
在C++的类中,是否可以把函数声明成__device__
c++·cuda
脚踏实地皮皮晨1 小时前
003003001_Grid控件
开发语言·windows·算法·c#·visual studio