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 + /

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot实战(19)(条件分页查询、PageHelper、MYBATIS动态SQL、mapper映射配置文件、自定义类封装分页查询数据集)

引言&#xff1a; 该类博客的学习是基于b站黑马视频springbootvue视频学习&#xff01;具体围绕项目——"大事件"进行实战学习。 目录 一、功能介绍&#xff08;需求&#xff09;。 1、文章列表功能基本介绍。 2、条件分页查询功能与注意。 3、前端页面效果。&#x…

LoRA微调系列笔记

系列文章目录 第一章&#xff1a;LoRA微调系列笔记 第二章&#xff1a;Llama系列关键知识总结 第三章&#xff1a;LLaVA模型讲解与总结 文章目录 系列文章目录LoRA&#xff1a;Low-Rank Adaptation of Large Language Models目的&#xff1a;依据&#xff1a;优势&#xff1a;…

Python - 游戏:飞机大战;数字华容道

Pygame是一个利用SDL库的写的游戏库&#xff0c;SDL呢&#xff0c;全名Simple DirectMedia Layer&#xff0c;是一位叫做Sam Lantinga的大牛写的 SDL是用C写的&#xff0c;不过它也可以使用C进行开发&#xff0c;当然还有很多其它的语言&#xff0c;Pygame就是Python中使用它的…

【JVM】总结篇-字节码篇

字节码篇 Java虚拟机的生命周期 JVM的组成 Java虚拟机的体系结构 什么是Java虚拟机 虚拟机&#xff1a;指以软件的方式模拟具有完整硬件系统功能、运行在一个完全隔离环境中的完整计算机系统 &#xff0c;是物理机的软件实现。常用的虚拟机有VMWare&#xff0c;Visual Box&…

GitHub 及 GitHub Desktop 详细使用教程(通俗易懂)

目录 Δ前言 一、Github教程 1.什么是Github&#xff1f; 2.仓库和对仓库的操作&#xff1a; 2.1 Repository&#xff08;仓库&#xff09; 2.2 Fork&#xff08;派生&#xff09; 2.3 Star&#xff08;收藏&#xff09; 2.4 Watch&#xff08;追番&#xff09; 2.5 Issue&am…

OpenLinkSaas使用手册-待办事项和通知中心

在OpenLinkSaas工作台上&#xff0c;你可以查看待办事项和未读通知。 待办事项 目前待办事项支持: 个人待办项目待办:在项目中指派给你的任务/缺陷Git待办:在Git仓库中指标给你的Issue,目前只有在AtomGit和Gitee账号登录时才支持。 通知中心 通知中心支持Git通知和邮件通知两种…

springboot集成阿里云短信服务

springboot集成阿里云短信服务 一.阿里云账号准备 流程:注册阿里云账号>短信服务>新增资质>新建签名>新建模版>申请秘钥>用代码测试 1.注册阿里云账号 2、登录成功后&#xff0c; ① 在首页搜索短信服务 ② 打开第一个搜索结果 ③ 免费开通 ④ 可以根据…

试题转excel;word转excel;大风车excel(1.1更新)

最近更新了大风车excel1.1版本 主要优化在算法层面&#xff1a; 1.0版本试题解析的成功率为95%&#xff0c;现在1.1版本已经优化到解析成功率为99% 一、问题描述 一名教师朋友&#xff0c;偶尔会需要整理一些高质量的题目到excel中 以往都是手动复制搬运&#xff0c;几百道…

python实现自动登录12306抢票 -- selenium

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 python实现自动登录12306抢票 -- selenium 前言其实网上也出现了很多12306的代码&#xff0c;但是都不是最新的&#xff0c;我也是从网上找别人的帖子&#xff0c;看B站视频&…

机器学习之正则化惩罚和K折交叉验证调整逻辑回归模型

机器学习之正则化惩罚和K折交叉验证调整逻辑回归模型 目录 机器学习之正则化惩罚和K折交叉验证调整逻辑回归模型1 过拟合和欠拟合1.1 过拟合1.2 欠拟合 2 正则化惩罚2.1 概念2.2 函数2.3 正则化种类 3 K折交叉验证3.1 概念3.2 图片理解3.3 函数导入3.4 参数理解 4 训练模型K折交…

文件本地和OSS上传

这里写目录标题 前端传出文件后端本地存储阿里云OSS存储上传Demo实现上传ConfigurationProperties 前端传出文件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>上传文件</title> </head&g…

《Vue3实战教程》37:Vue3生产部署

如果您有疑问&#xff0c;请观看视频教程《Vue3实战教程》 生产部署​ 开发环境 vs. 生产环境​ 在开发过程中&#xff0c;Vue 提供了许多功能来提升开发体验&#xff1a; 对常见错误和隐患的警告对组件 props / 自定义事件的校验响应性调试钩子开发工具集成 然而&#xff…

python制作打字小游戏

import pygame # 导入游戏模块 安装pygame import sys # 导入系统指令模块 import random # 导入随机数模块 pygame.init() #初始化游戏环境 wndpygame.display.set_mode((800,565)) #指定窗口大小 pygame.mixer.music.load(素材/SurvivalGame.mp3) #素…

抖音短视频矩阵系统源码开发全流程解析

在项目开发过程中&#xff0c;调整配置文件至关重要&#xff0c;这些文件包括数据库连接、API密钥及全局参数等。通过正确配置这些信息&#xff0c;可确保应用程序的稳定性和安全性。灵活调整配置以适应具体需求有助于短视频矩阵系统项目的顺利推进。 在开发环境中&#xff0c…

前端路由layout布局处理以及菜单交互(三)

上篇介绍了前端项目部署以及基本依赖的应用&#xff0c;这次主要对于路由以及布局进行模块化处理 一、 创建layout模块 1、新建src/layout/index.vue <template><el-container class"common-layout"><!-- <el-aside class"aside">&l…

戴尔/Dell 电脑按什么快捷键可以进入 Bios 设置界面?

BIOS&#xff08;基本输入输出系统&#xff09;是计算机硬件与操作系统之间的桥梁&#xff0c;它负责初始化和测试系统硬件组件&#xff0c;并加载启动操作系统。在某些情况下&#xff0c;如调整启动顺序、更改系统时间或日期、修改硬件配置等&#xff0c;您可能需要进入BIOS进…

《从入门到精通:蓝桥杯编程大赛知识点全攻略》(一)-递归实现指数型枚举、递归实现排列型枚举

本篇博客将聚焦于通过递归来实现两种经典的枚举方法&#xff1a;指数型枚举和排列型枚举。这两种枚举方式在计算机科学和算法竞赛中都有广泛应用&#xff0c;无论是在解题中&#xff0c;还是在实际工作中都极具价值。 目录 前言 斐波那契数列递归 递归实现指数型枚举 算法思…

idea 的 springboot项目spring-boot-devtools 自动编译 配置热部署

1&#xff0c;设置一 2&#xff0c;设置二 设置二&#xff08;旧版本&#xff09; CtrlShiftAlt/ 点击弹出框中Registry... 引入&#xff08;如果报错&#xff0c;换不同的版本&#xff09; <dependency><groupId>org.springframework.boot</groupId><a…

低代码开发:开启企业数智化转型“快捷键”

一、低代码开发浪潮来袭&#xff0c;企业转型正当时 在当今数字化飞速发展的时代&#xff0c;低代码开发已如汹涌浪潮&#xff0c;席卷全球。从国际市场来看&#xff0c;诸多企业巨头纷纷布局低代码领域&#xff0c;像微软的 PowerApps、OutSystems 等平台&#xff0c;凭借强大…

C#二维数组详解

目录 1&#xff0c;什么是二维数组&#xff1f; 2&#xff0c;创建二维数组的几种方式 &#xff08;1&#xff09;使用[,]声明数组&#xff08;常见方式&#xff09; &#xff08;2&#xff09;声明数组时指定元素 &#xff08;3&#xff09;使用new创建数组 &#xff08;…