No.1十六届蓝桥杯备战|第一个C++程序|cin和cout|命名空间

第一个C++程序

基础程序

使用DevC++5.4.0
写一个C++程序
在屏幕上打印hello world

#include <iostream>
using namespace std;

int main()
{
	cout << "hello world" << endl;
	return 0;
} 

运行这个C++程序
F9->编译
F10->运行
F11->编译+运行

main函数

main函数是程序的⼊⼝,C++的程序不管有多少⾏代码,都是从main函数开始执⾏的,main函
数也被叫做主函数。
main前⾯的int表⽰main函数执⾏结束的时候返回⼀个整型类型的值,⽽在main函数的最后写return 0; 正好前后呼应。

  • main函数是程序的入口
  • main函数有且只有一个
  • 一个项目中可以有多个.cpp文件,但是只能有一个main函数(因为程序的入口只能有一个)

int - 数据类型 - 整型类型 - 表示整数

字符串

在C语⾔中,使⽤单引号括起来⼀个字符,表⽰字符字⾯值,即字符常量,⽐如: ‘1’ , ‘a’,使⽤双引号括起来多个字符表⽰⼀个字符串,⽐如: “abcdef” , “hello world” ,字符串中可以有⼀个或者多个字符,也可以没有任何字符, " " 表⽰空字符串。
上⾯代码中的 “hello world!” 就是⼀个字符串。这类字符和字符串表⽰的⽅式在C++也完全⽀持
的。
在C++的STL中⼜引⼊了string来表⽰字符串,功能更加强⼤,C语⾔不⽀持。

头文件

iostream 输入输出流,使⽤ #include <> 的形式进⾏包含。
iostream⽂件中的io指的是输⼊(进⼊程序的信息,简单理解就是可以给程序输⼊数据)
和输出(从程序中输出的信息,简单理解就是程序会打印数据在屏幕上)。
在C++程序中要完成输⼊和输出的操作会涉及到iostream⽂件中的多个定义,所以就要包含这个头⽂件。⽐如:代码中的cout是输出流对象,就是⽤来完成数据输出的,就需要包含头⽂件。
C++的编译器⾃带了很多头⽂件,每个头⽂件都⽀持⼀组特定的⼯具。
C++库函数相关头⽂件:C++ 标准库标头 - cppreference.com
在代码中如果使⽤了某个头⽂件中的定义,就得包含对应的头⽂件。

  1. 在C语⾔中头⽂件的扩展名是 .h ,但是C++中的⽤法发⽣了⼀些变化,对⽼式C的头⽂件保留了扩展名 .h ,但是C++⾃⼰的⽂件没有扩展名了。C语⾔头⽂件:C 标准库头文件 - cppreference.com
  2. 有些C的头⽂件被转换成C++头⽂件,这些⽂件名被重命名,去掉了.h扩展名,并在⽂件名的前⾯加上了前缀c(表⽰来⾃C语⾔);例如:C语⾔中有关数学的头⽂件名字是 math.h ,在C++中就是 cmath 。当然还得注意,有时头⽂件的C语⾔版本和C++版本相同,⽽有时候,新版本做了⼀些修改。
头文件类型约定实例说明
C++旧式风格以.h结尾<iostream.h>C++程序可以使⽤,⼀些新的IDE可能不再⽀持
C旧式风格以.h结尾<math.h>C、C++程序可以使用
C++新式风格没有扩展名<iostream>C++程序可以使用,使用namespace std
转换后的C加上前缀,没有扩展名<cmath>C++程序可以使用,可能包含不是C的特性
cin和cout初识

cout << "hello world!" << endl; 这句代码在上⾯的程序中是最重要的代码,其他所有的
代码都是为了编写这句代码。
代码中的 cout标准输出流对象(针对控制台,也就是屏幕),其实还有标准输⼊流对象(针对的是键盘) cin
cout 是告诉程序把后⾯双引号中的内容打印到标准输出设备(屏幕)上,双引号中的内容可以替换的。

#include <iostream>
using namespace std;

int main()
{
	int num;       // num 其实是一块空间,可以存放一个整数 
	cin >> num;    // 输入操作, 输入一个整数存放在num中 
	cout << num;   // 输出操作, 将num中的值打印在屏幕上 
	
	return 0;
} 
  1. cin 和 cout 是全局的流对象,cin负责输⼊数据,cout负责输出数据。
  2. endl 是C++中⼀个特殊的操作符,效果是换⾏和刷新缓冲区,使⽤时必须包含在iostream头⽂件。
  3. << 是流插⼊运算符,和 cout 配合使⽤, >> 是流提取运算符,和 cin 配合使⽤。
  4. 使⽤C++输⼊输出更⽅便,不需要像 printf / scanf 输⼊输出时那样,需要⼿动控制格式。C++的输⼊输出可以⾃动识别变量类型。
#include <iostream>  
using namespace std;  

int main()  
{  
	float score = 0;  
	cin >> score;       // 直接读取的就是浮点数  
	cout << score;      // 直接输出的就是浮点数  

	return 0;  
}  
名字空间

using namespace std; 这句代码的意思是:使⽤名字空间 std (名字空间也叫命名空间)。
为了理解什么是名字空间,名字空间要解决什么问题,⼤家先看⼀下下⾯的例⼦:

[!NOTE] eg
⼀个学校⾥学⽣可能有重名,假设这个学校有3个叫张三的同学,那么每次⽼师喊张三的时候,其他两个张三就会误会,是不是在喊⾃⼰,这就是因为这三个张三其实在同⼀个范围(空间)内的,就会名字的冲突。
但是如果这个学校的学⽣分为三个班,分别是1班、2班、3班,把三个张三分别安排在不同的班级,那么⽼师以后喊:1班的张三,那么2班、3班的张三就不会误会了,这是不是就很好的解决了名字冲突的问题。
Contents

其实这⾥的本质就是:

  1. 将名字进⾏了隔离
  2. 在使⽤名字之前先交待使⽤哪个班级的名字
    ![[Pasted image 20241228204425.png]]

在C++中,变量、函数和类都是⼤量存在的,这些变量、函数和类的名称如果都存在于全局作⽤域中,可能会导致很多冲突。使⽤ 名字空间 的⽬的是对标识符的名称进⾏隔离,以避免命名冲突或名字污染, namespace 关键字的出现就是针对这种问题的。
std 是C++标准库的名字空间名,C++将标准库的定义实现都放到这个命名空间中,当我们需要使⽤标准库中的内容时,就需要加上: using namespace std;当有了这句代码的时候,表⽰名字空间 std 中信息都是可⻅和可⽤的,⽐如: cin 、 cout 、 endl 等。
![[Pasted image 20241228211758.png]]

直接使⽤ using namespace std; 是⼀种简单粗暴的做法,直接这样使⽤,就意味着后续在std 这个名字空间中的各种定义都可以直接使⽤,但是我们往往只是使⽤部分。所以名字空间其实也可以这样使⽤:

#incldue <iostream>  

int main()  
{  
	std::cout << "hello world" << std::endl;  
	
	return 0;  
}

代码中的 std::cout 的意思就是使⽤ std 名字空间中的 cout

注释

C++⾥主要有两种形式:单⾏注释 // 和多⾏注释 /* */
注释本来是对代码进⾏解释的⽂字,要放在代码中,但是⼜⽆需编译。注释是给程序员⾃⼰看的,编译器会忽略注释,基于注释是被编译器忽略的这个特点,在代码中有些代码不再需要的时候也会使⽤注释的⽅式屏蔽。
单⾏注释:指的是当前⾏不参与编译和运⾏
多⾏注释:指的是被包含在内的多⾏不参与编译和运⾏

在VS环境中注释和取消注释的快捷键: Ctrl + K + C , Ctrl + K + U
在DevC++中注释和取消注释的快捷键: Ctrl + /

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/946688.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端开发 -- 自动回复机器人【附完整源码】

一&#xff1a;效果展示 本项目实现了一个简单的网页聊天界面&#xff0c;用户可以在输入框中输入消息&#xff0c;并点击发送按钮或按下回车键来发送消息。机器人会根据用户发送的消息内容&#xff0c;通过关键字匹配来生成自动回复。 二&#xff1a;源代码分享 <!DOCTYP…

UNI-APP_i18n国际化引入

官方文档&#xff1a;https://uniapp.dcloud.net.cn/tutorial/i18n.html vue2中使用 1. 新建文件 locale/index.js import en from ./en.json import zhHans from ./zh-Hans.json import zhHant from ./zh-Hant.json const messages {en,zh-Hans: zhHans,zh-Hant: zhHant }…

【MySQL】第一弹----库的操作及数据类型

笔上得来终觉浅,绝知此事要躬行 &#x1f525; 个人主页&#xff1a;星云爱编程 &#x1f525; 所属专栏&#xff1a;MySQL &#x1f337;追光的人&#xff0c;终会万丈光芒 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 一、SQL 语句分类 DDL:数据定…

家用电器销售系统|Java|SSM|JSP|

【技术栈】 1⃣️&#xff1a;架构: B/S、MVC 2⃣️&#xff1a;系统环境&#xff1a;Windowsh/Mac 3⃣️&#xff1a;开发环境&#xff1a;IDEA、JDK1.8、Maven、Mysql5.7 4⃣️&#xff1a;技术栈&#xff1a;Java、Mysql、SSM、Mybatis-Plus、JSP、jquery,html 5⃣️数据库可…

ChatGPT 与 AGI:人工智能的当下与未来走向全解析

在人工智能的浩瀚星空中&#xff0c;AGI&#xff08;通用人工智能&#xff09;无疑是那颗最为璀璨且备受瞩目的星辰。OpenAI 对 AGI 的定义为“在最具经济价值的任务中超越人类的高度自治系统”&#xff0c;并勾勒出其发展的五个阶段&#xff0c;当下我们大多处于以 ChatGPT 为…

28.<Spring博客系统⑤(部署的整个过程(CentOS))>

引入依赖 Spring-boot-maven-plugin 用maven进行打包的时候必须用到这个插件。看看自己pom.xml中有没有这个插件 并且看看配置正确不正常。 注&#xff1a;我们这个项目打的jar包在30MB左右。 <plugin><groupId>org.springframework.boot</groupId><artif…

win11 vs2022 opencv 4.10使用vs Image Watch插件实时可视化内存mat对象

这个本来是非开源工业软件HALCON的一个功能&#xff0c;方便提升图像识别开发效率。原以为opencv没有&#xff0c;需要通过进程间共享内存的方式去实现。 结果在官网帮助文档中发现已经提供了。 opencv 4.10帮助文档https://docs.opencv.org/4.10.0/index.htmlOpenCV Tutorial…

用Python操作字节流中的Excel工作簿

Python能够轻松地从字节流中加载文件&#xff0c;在不依赖于外部存储的情况下直接对其进行读取、修改等复杂操作&#xff0c;并最终将更改后的文档保存回字节串中。这种能力不仅极大地提高了数据处理的灵活性&#xff0c;还确保了数据的安全性和完整性&#xff0c;尤其是在网络…

uni-app微信小程序如何使用高德地图。通过经纬度获取所在城市,涉及到授权获取地理位置权限

高德地图官方是这样介绍的使用方法可以参考&#xff1a;入门指南-微信小程序插件 | 高德地图API 我再介绍一下我得具体应用。 1&#xff0c;首先要在申请高德地图开放平台得账号。然后在这个账号中申请一个应用。类型选择微信小程序。 我的应用 | 高德控制台 获取Key-创建工…

YOLOv5部署到web端(flask+js简单易懂)

文章目录 前言最终实现效果图后端实现 主界面检测函数检测结果显示 前端实现 主界面(index.html&#xff09;显示图片界面 总结 前言 最近&#xff0c;老板让写一个程序把yolov5检测模型部署到web端&#xff0c;在网页直接进行目标检测。经过1个星期的努力&#xff0c;终于实…

使用Locust对Redis进行负载测试

1.安装环境 安装redis brew install redis 开启redis服务 brew services start redis 停止redis服务 brew services stop redis 安装Python库 pip install locust redis 2.编写脚本 loadTest.py # codingutf-8 import json import random import time import redis …

C#-使用StbSharp库读写图片

一.StbSharp StbSharp是基于C/Stb图形处理库封装的C#接口,支持多种格式PNG/JPG等图片的处理. GitHub链接: GitHub - StbSharp/StbTrueTypeSharp: C# port of stb_truetype.hhttps://github.com/StbSharp/StbTrueTypeSharp二.使用StbSharp创建高度图 创建一张500*500的高度图PN…

单周期CPU电路设计

1.实验目的 本实验旨在让学生通过设计一个简单的单周期 CPU 电路&#xff0c;深入理解 RISC-V 指令集的子集功能实现&#xff0c;掌握数字电路设计与实现的基本流程&#xff0c;包括指令解析、部件组合、电路设计以及功能仿真等环节&#xff0c;同时培养verilog HDL编程能力和…

【文献精读笔记】Explainability for Large Language Models: A Survey (大语言模型的可解释性综述)(五)

****非斜体正文为原文献内容&#xff08;也包含笔者的补充&#xff09;&#xff0c;灰色块中是对文章细节的进一步详细解释&#xff01; 五、 解释评估&#xff08;Explanation Evaluation&#xff09; 在前面的章节中&#xff0c;我们介绍了不同的解释技术和它们的用途&#…

UE5材质节点Camera Vector/Reflection Vector

Camera Vector相机向量&#xff0c;输出像素到相机的方向&#xff0c;结果归一化 会随着相机移动而改变 Reflection Vector 反射向量&#xff0c;物体表面法线反射到相机的方向&#xff0c;x和y和camera vector相反 配合hdr使用

使用Qt中的模型视图框架

本篇文章让你能够在阅读完之后&#xff0c;掌握Qt的模型视图框架的大致使用方法。 问题引入 在我们开发较小的软件的时候&#xff0c;我们可能不会注意到模型视图框架的作用。 因为我们的同一份的数据可能只会在同一个窗口中显示&#xff0c;不会存在数据在一个窗口中更新&a…

跟着逻辑先生学习FPGA-实战篇第一课 6-1 LED灯闪烁实验

硬件平台&#xff1a;征战Pro开发板 软件平台&#xff1a;Vivado2018.3 仿真软件&#xff1a;Modelsim10.6d 文本编译器&#xff1a;Notepad 征战Pro开发板资料 链接:https://pan.baidu.com/s/1AIcnaGBpNLgFT8GG1yC-cA?pwdx3u8 提取码:x3u8 1 知识背景 LED&#xff0c;又名…

2024国城杯 Web

这四道题目Jasper大佬都做了镜像可以直接拉取进行复现 https://jaspersec.top/2024/12/16/0x12%20%E5%9B%BD%E5%9F%8E%E6%9D%AF2024%20writeup%20with%20docker/ n0ob_un4er 这道题没有复现成功, 不知道为啥上传了文件, 也在 /tmp目录下生成了sess_PHPSESSID的文件, 但是就是…

【ArcGISPro/GeoScenePro】检查多光谱影像的属性并优化其外观

数据 https://arcgis.com/sharing/rest/content/items/535efce0e3a04c8790ed7cc7ea96d02d/data 操作 其他数据 检查影像的属性 熟悉检查您正在使用的栅格属性非常重要。

基于Docker基础与操作实战

6.1 Docker容器简介 Docker是一个开源的应用容器引擎&#xff0c;它基于Go语言并遵从Apache2.0 协议开源。 Docker是一个用于开发&#xff0c;交付和运行应用程序的开放平台。Docker能将应用程序与基础架构分开&#xff0c;从而可以快速交付软件。借助Docker&#xff0c;您可…