QT第五六七节课笔记 - 用C语言快速入门

【C++入门必看】C++从0到1入门编程 C++基础入门 1 C++初识 1.1 第一个C++程序 编写一个C++程序总共分为4个步骤 创建项目 创建文件 编写代码 运行程序 1.1.1 创建项目 ​ Visual Studio是我们用来编写C++程序的主要工具,我们先将它打开 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lIML04ua-1621943526189)(assets/1541383178746.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rj0Ut 阅读详情
AI摘要

本文介绍了C++的快速入门,包括标准输入/输出流的使用、基本数据类型、流程控制语句、函数和内联函数的概念,以及如何处理输入输出和数据类型管理。

2.2 从C语言快速入门

2.2.1 输入输出

C++ 中的输入和输出(I/O)主要是通过标准库中的输入输出流来实现的。最常用的是 iostream 库,它提供了用于输入和输出的基本流类,包括 cin、cout、cerr 和 clog。

标准输出流 (cout)

  • cout 代表标准输出流,通常用于向屏幕输出数据。
  • 使用操作符 <<(插入操作符)向 cout 发送数据。
  • 例如,std::cout << "Hello, world!" << std::endl; 会在屏幕上打印 “Hello, world!” 并换行。

标准输入流 (cin)

  • cin 代表标准输入流,用于从键盘接收数据。
  • 使用操作符 >>(提取操作符)从 cin 提取数据。
  • 例如,int x; std::cin >> x; 会从用户那里读取一个整数并存储在变量 x 中。

标准错误流 (cerr) 和标准日志流 (clog)

  • cerr 用于输出错误消息。与 cout 不同,cerr 不是缓冲的,这意味着它会立即输出。
  • clog 类似于 cerr,但它是缓冲的。它通常用于记录错误和日志信息。

示例代码

下面是一个展示如何使用这些基本流的简单示例:

#include <iostream>

int main() {
    // 使用 cout 输出
    std::cout << "Enter a number: ";

    // 使用 cin 输入
    int num;
    std::cin >> num;
    // 输出结果
    std::cout << "You entered: " << num << std::endl;
    std::clog << "Logging: user entered a number." << std::endl;

    return 0;
}

2.2.2 基本变量类型

C++ 基本数据类型整理成表格。以下是一个表格,展示了不同的基本数据类型及其一般用途和大小范围:

和C语言类似。

数据类型描述大小(通常情况下)用途
int整型至少 16 位存储整数
short int短整型至少 16 位存储较小的整数
long int长整型至少 32 位存储较大的整数
long long int更长的整型至少 64 位存储非常大的整数
unsigned int无符号整型同 int存储非负整数
float单精度浮点类型32 位存储小数,精度约为 6-7 位小数
double双精度浮点类型64 位存储小数,精度约为 15-16 位小数
long double扩展精度浮点类型80 位或更多存储小数,提供比 double 更高的精度
char字符型8 位存储单个字符或小整数
unsigned char无符号字符型8 位存储较大的字符或作为字节使用
signed char有符号字符型8 位明确作为带符号的字符或小整数使用
bool布尔型通常为 8 位存储真值 true 或假值 false C语言C99以上支持
wchar_t宽字符类型通过为16位或32位存储中文或者unicode

宽字符的用法

#include <iostream>
#include <locale>
#include <wchar.h>

int main() {
    // 设置本地化以支持宽字符
    std::setlocale(LC_ALL, "");

    // 使用 wchar_t 类型定义一个宽字符串
    wchar_t wstr[] = L"你好,世界!";

    // 在 C++ 中打印宽字符串
    std::wcout << wstr << std::endl;

    return 0;
}

在 C++ 中,<climits>(或在 C 中是 <limits.h>)是一个标准头文件,提供了关于整型限制的信息。这个头文件中定义了各种整型数据类型的属性,如最大值、最小值等。使用这些信息可以帮助你了解在特定编译器和平台上各种数据类型的大小和范围。

如何使用 <climits>

要使用 <climits> 中定义的常量,你首先需要包含这个头文件:

#include <climits>

然后,你可以使用它提供的各种常量,例如:

  • INT_MAX:int 类型的最大值。
  • INT_MIN:int 类型的最小值。
  • UINT_MAX:unsigned int 类型的最大值。
  • LONG_MAX:long int 类型的最大值。
  • LONG_MIN:long int 类型的最小值。
  • LLONG_MAX:long long int 类型的最大值。
  • LLONG_MIN:long long int 类型的最小值。

示例代码

下面是一个简单的示例,展示了如何使用 <climits> 中的值:

#include <iostream>
#include <climits>

int main() {
    std::cout << "The range of int is from " << INT_MIN << " to " << INT_MAX << std::endl;
    std::cout << "The maximum value of unsigned int is " << UINT_MAX << std::endl;
    std::cout << "The range of long long is from " << LLONG_MIN << " to " << LLONG_MAX << std::endl;
    
    return 0;
}

这个程序会输出 int、unsigned int 和 long long int 类型的最大值和最小值。

注意事项

  • <climits> 提供的是编译时确定的常量,这意味着这些值在编译时就已经固定,根据编译器和平台的不同而可能有所不同。
  • 使用这些限制值可以帮助你编写更可移植和安全的代码,特别是在处理可能超出数据类型范围的操作时。

2.2.3 流程控制

在 C++ 中,流程控制语句用于根据不同条件控制程序的执行流程。它们是编程中的基本构建块,允许程序根据条件执行不同的代码段,重复执行某些操作,或者根据特定情况跳过某些代码段。下面是 C++ 中最常见的流程控制语句:

条件语句

  1. if 语句:基于条件的基本控制结构。如果条件为真,则执行代码块。
if (condition) {
    // 条件为真时执行的代码
}

else 语句:与 if 语句配合使用,当 if 的条件为假时执行。

if (condition) {
    // 条件为真时执行的代码
} else {
    // 条件为假时执行的代码
}

else if 语句:用于测试多个条件。

if (condition1) {
    // 第一个条件为真时执行的代码
} else if (condition2) {
    // 第二个条件为真时执行的代码
} else {
    // 所有条件为假时执行的代码
}

switch 语句:基于变量的值选择执行不同代码块的方法。

switch (expression) {
    case value1:
        // expression 等于 value1 时执行的代码
        break;
    case value2:
        // expression 等于 value2 时执行的代码
        break;
    default:
        // 没有匹配的 case 时执行的代码
}

循环语句

for 循环:当知道循环应该执行的次数时使用。

for (initialization; condition; increment) {
    // 循环体
}

while 循环:当条件为真时,重复执行代码块。

while (condition) {
    // 循环体
}

do-while 循环:至少执行一次循环体,然后再检查条件。

do {
    // 循环体
} while (condition);

跳转语句

  1. break 语句:用于立即跳出最近的 switch 或循环(for、while、do-while)。
  2. continue 语句:跳过循环的当前迭代,并继续下一次迭代。
  3. goto 语句:直接跳转到程序中的另一个点。使用 goto 通常不推荐,因为它可以使代码难以阅读和维护。

流程控制语句是编程中非常重要的部分,允许开发者编写可以根据不同情况改变行为的灵活且强大的程序。在使用这些语句时,应该确保逻辑清晰,以便代码易于理解和维护。

2.2.4 函数

在 C++ 中,函数是一段执行特定任务的代码块,它可以带有参数,并且可能返回一个值。函数的使用使得代码更加模块化和可重用,有助于降低代码的复杂性,并提高可维护性。

函数的基本结构

C++ 函数的基本结构包括返回类型、函数名、参数列表和函数体:

返回类型 函数名(参数列表) {
    // 函数体
    // 返回语句(如果有返回值的话)
}

示例

以下是一个 C++ 函数的简单示例:

#include <iostream>
using namespace std;

// 函数声明
int add(int x, int y);

int main() {
    int result = add(5, 3);
    cout << "Result: " << result << endl;
    return 0;
}

// 函数定义
int add(int x, int y) {
    return x + y;
}

在这个示例中,add 函数接收两个整数参数,并返回它们的和。

函数的组成部分

  1. 返回类型:指定函数返回的数据类型。如果函数不返回任何值,则使用 void。
  2. 函数名:函数的标识符,用于调用函数。
  3. 参数列表:括号内的变量列表,用于从函数的调用者那里接收值。如果函数不接收任何参数,则此列表为空。
  4. 函数体:大括号 {} 内的一系列语句,定义了函数的执行操作。

2.2.5 内联函数

内联函数(Inline Function)是C++中一种特殊的函数,其定义直接在每个调用点展开。这意味着编译器会尝试将函数调用替换为函数本身的代码,这样可以减少函数调用的开销,尤其是在小型函数中。

特点

  1. 减少函数调用开销:内联函数通常用于优化小型、频繁调用的函数,因为它避免了函数调用的常规开销(如参数传递、栈操作等)。
  2. 编译器决策:即使函数被声明为内联,编译器也可能决定不进行内联,特别是对于复杂或递归函数。
  3. 适用于小型函数:通常只有简单的、执行时间短的函数适合做内联。
  4. 定义在每个使用点:内联函数的定义(而非仅仅是声明)必须对每个使用它的文件都可见,通常意味着将内联函数定义在头文件中。

使用方法

通过在函数声明前添加关键字 inline 来指示编译器该函数适合内联:

inline int max(int x, int y) {
    
    return x > y ? x : y;
}

示例

#include <iostream>

inline int add(int a, int b) {
    return a + b;
}

int main() {
    int result = add(5, 3); // 编译器可能会将此替换为:int result = 5 + 3;
    std::cout << "Result: " << result << std::endl;
    return 0;
}

在这个示例中,函数 add 被定义为内联函数。当它被调用时,编译器可能会将函数调用替换为函数体内的代码。

注意事项

  • 过度使用的风险:不应滥用内联函数,因为这可能会增加最终程序的大小(代码膨胀)。对于大型函数或递归函数,内联可能导致性能下降。
  • 编译器的决定:最终是否将函数内联是由编译器决定的,即使函数被标记为 inline。
  • 适用场景:最适合内联的是小型函数和在性能要求高的代码中频繁调用的函数。

内联函数是一种用于优化程序性能的工具,但需要合理使用,以确保代码的可维护性和性能的平衡。

在QT进行cin(全网最清晰教程) 全网最清晰教程 一、配置工作 配置.pro文件,在CONFIG 中添加 console,添加后注意进行“构建->执行qmake” 否则配置无效。 二、运行设置,勾选Run in terminal 三、mian.cpp中添加头文件 #include <iostream> #include <cmath> using namespace std; int main() { double a,b; cin >> a >> b; 阅读详情

相关推荐

Qt基础-如何才能使用cout和cin

Qt使用cout和cin

qq_30725967的博客 1635

C++快速上手

C++快速上手 一、C++ 文件结构 每个 C++程序通常分为两个文件. (1)头文件:一个文件用于保存程序的声明, 称为头文件. C++程序的头文件以 “.h” 为后缀.头文件的作用,通过头文件来调用库功能, 在很多场合, 源代码不便 (或不准) 向用户公布, 只要向用户提供头文件和二进制的库 (lib 静态库) 即可, 用户只需要按照头文件中的接口声明来调用库功能, 而不必关心接口怎么实现的, 编译器会从库中提取相应的代码.如果一个软件的头文件数目比较多 (如超过十个), 通常应将头文件和定义文件分别保

weixin_38631697的博客 823

主板USB接口全部失效解决方案(通用串行总线USB控制器有黄色叹号)保姆级教程亲测有效

通用串行总线控制器总是有叹号解决办法 办公室的崩腾时代老电脑,疫情期间没人用,来了开机之后发现鼠标键盘都用不了,本以为是主机放时间长出了问题,后来想起来就百度了“鼠标键盘都失效”的标题,结果发现了“串行总线控制器总是感叹号”的关联问题。正好办公室电脑都装有teamviwer常用来远程办公(在家偷懒)。所以通过远程发现电脑室可以运行的。并在控制面板发现:通用串行总线控制器总是感叹号,插入外设时USB无反应。如图:​ 并且右键选中其中一个,点击最后一个选项:“属性” 可以发现“设备状态”中会提示“由...

xiao_bai_0_0的博客 2万+

c++快速入门

c++其实就比c多了一点内容,如:类,继承,多态..面向对象的内容,如果你学习过C语言,学C++就非常简单,本文章写的比较简单,适合快速入门

lijianhua003的博客 1852

别再为Word转PDF表格变形发愁了!Aspose.Words for Java 19.5 保姆级避坑指南

本文详细介绍了使用Aspose.Words for Java 19.5解决Word转PDF时表格变形问题的完整方案。从格式转换原理到实战技巧,涵盖固定表格宽度、禁用自动调整、强制文本换行等核心方法,并提供高级场景应对策略和性能优化建议,帮助开发者高效处理复杂文档转换需求。

weixin_28702105的博客 267

Realtek RTD1319D芯片解析:H.266与AV1双解码的机顶盒SoC

视频编解码技术是数字媒体传输的核心,H.266/VVC作为新一代标准,相比H.265提升50%压缩效率,显著降低带宽需求。其实现原理依赖于专用硬件解码器和并行处理架构,在超高清视频传输领域具有重要价值。Realtek RTD1319D作为首款商用H.266处理器,采用异构计算设计,集成四核ARM CPU和独立视频处理单元,同时支持AV1解码,兼顾市场兼容性。该SoC特别适合4K机顶盒、数字标牌等应用场景,其HDMI 2.1a接口和DVB解调器为超高清内容传输提供完整解决方案。开发时需注意散热设计和内存配置优

weixin_42591413的博客 673

C++基础知识快速入门

C++基础知识,快速入门 C++简介 C++是一种静态类型、编译式的、大小写敏感的、支持过程化编程、面向对象编程和泛型编程。 C++被认为是一种中级语言,它综合了高级语言和低级语言的特点。 C++完全支持面向对象程序化设计,包括面向对象开发的四大特征:封装、抽象、继承、多态 对象 - 对象具有状态和行为。例如:一只狗的状态-颜色、名称、品种,行为-摇动、叫唤、吃。对象是类的实例。 类 - 类可以定...

weixin_46416904的博客 9138

解决 NLPIR (中科院分词) License 过期问题

因为学习需要,使用到了中文分词技术,网上搜索一番,最终选择了名气比较大的中科院分词器(NLPIR/ICTCLAS)。 用了几个月之后突然报错: E:\code\URLClassifier\Data\NLPIR.user Not valid license or your license expired! Please feel free to contact pipy_zhan

勇敢向前冲 1万+

C++简易基础--快速上手

C++简易基础--快速上手1 命名空间1.1 如何使用命名空间1.2 using 使用1.2 C++语言的输入与输出--标准I/O库2 数据类型2.1 基本数据类型2.2 运算符与表达式3 程序运行的内存分配方式3.1 内存分配三种方式3.2 管理堆内存3.2.1 new关键字4 基本控制结构4 函数4.1 函数的申明与调用4.2 参数传递5 类和对象5.1 类5.2 对象5.3 类的成员函数6 数组字符串和指针 1 命名空间 命名空间包含了 逻辑结构上相互关联的一组类、函数、模板等。命名空间像是一个容器,

li_kin的博客 1695

MTK-Android12开机应用自启需求-自定义原生Launcher3 主界面布局图标

MTK平台 Android12 版本 上实现 开机应用自启需求-自定义原生Launcher3 主界面布局图标。添加一个属性定义即可,如下:这里自定义一个属性目的是为了在加载Launcher3启动时候从属性获取需要自启动应用的包名,可以扩展动态替换 自启动包名。这里有两种方案,要么在Launcher3里面实现,要么在系统服务里面在开机时候启动第三方一次。这里强烈建议在Launcher3中去实现,体验效果更好。// 第一步:定义属性,// 第二步:在onCreate 方法中获取属性并启动应用。

十年饮冰,难凉热血 1381

自然语言处理之话题建模:BERTopic模型详解

BERTopic是一种基于BERT的先进话题建模技术,它结合了BERT的语义理解能力和非参数聚类算法HDBSCAN的灵活性,能够生成高质量、语义丰富的话题。与传统的LDA(Latent Dirichlet Allocation)话题模型相比,BERTopic能够更好地捕捉文本的复杂语义结构,因为它利用了预训练的BERT模型来嵌入文本,从而在话题建模中引入了深度学习的力量。聚类是无监督学习的一种,其目标是将数据集中的样本按照相似性进行分组,每个组称为一个“簇”。

zhubeibei168的博客 4543

【c++】基础知识——快速入门c++

c++是在c语言的基础上,增加了面向对象编程、引用、函数重载、模板库STL等新特性,使得c++成为一门功能强大、灵活多变的语言。c++在语法上兼容大部分c语言,因而学习了c语言之后,会对c++学习有一定的帮助。相比java,c++语法的学习难度较高,但是它难学易用,也有利于我们理解底层,是一门十分值得深入学习的语言。接下来我们会重点介绍一些c++的前置基础知识,便于我们快速入门c++语法。int x = 5;char n;1.定义命名空间使用的关键字是。

2301_80955819的博客 2158

告警不是闹钟:AI 如何把告警过滤成真正的“求救信号”?

告警不是闹钟:AI 如何把告警过滤成真正的“求救信号”?

Echo_Wish 242

C++ 快速学习教程

C++ 快速学习教程。

Jiuri的博客 3682

全网最强AI辅助课题申报教程!超详细流程拆解,助你快速提高课题申报成功率(附各部分高效提示词)

实验法要详细说明自变量、因变量、实验类型、实验过程、实验步骤、测量工具名称、被试取样方式、无关变量控制方法。这个部分就是让评审专家相信我们有能力把这个项目干成,写的时候要重点突出两块内容:第一是研究基础,包括你或团队在相关领域已有的研究成果,比如发表的论文、承担过的课题、获得过的奖励、相关研究经验等,要具体、有说服力;课题申报专门给我们留了一小节用来突出课题的创新之处,不管是研究角度、研究对象、研究方法,还是应用价值都可以提炼作为我们的创新点,最后的语气成果也要明确具体,且要和课题内容紧密相关。

智能AI让学术科研更容易 665

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

C++快速入门

​ 定义命名空间,需要使用namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。int a = 10;int& b = a;//--定义引用类型//引用在语法层,我们要理解这里没有开新的空间,就是对原来的取了一个新的称叫做b//--这里是取地址ba = 20;b = 30;//a改变了,b也会改变;b改变了,a也会改变return 0;//不可以作参数//不可以定义数组return 0;

qq_55317476的博客 1345

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

C++快速入门教程

C++快速入门

stc89c51_74hc595的博客 825

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

C++——从C语言快速入门

在 C++ 中,数组是一种存储固定大小的相同类型元素的序列。数组的所有元素都存储在连续的内存位置上。在这个示例中,我们创建了一个 string 对象 str ,然后使用不同的方法对其进行操作。这些函数是 std::string 类中常用的一部分,提供了强大且灵活的字符串操作能力。在 C++ 中, string 类是标准库的一部分,用于表示和操作字符串。它是对传统的 C 风格字符串(如果您在初始化数组时没有指定所有元素的值,未初始化的元素将被自动设置为该数据类型的默认值()的一个更安全、更方便的封装。

2301_78772787的博客 1511

C++【基础】 ---- 快速入门 C++

本篇文章笔者将会对 C++ 这么语言中必须的基础部分进行简单讲解 , 同时也作为笔者自我复习使用, 这部分是初学C++ 的学者不可绕过的部分 , 希望学者认真理解 ,认真领会 .以上是对入门基础部分的简单讲解 , 后序还有更重要的内容哦 ~

思而不止 , 学而前行 ! 1195

C++基础入门学习笔记

C++基础入门 1.1 hello world #include<iostream> using namespace std; int main() { cout << "Hello world" << endl; system("pause"); return 0; } 1.2 注释 作用:在代码中加一些说明和解释,方便自己或其他程序员程序员阅读代码 两种格式 单行注释:// 描述信息 通常放在一行代码的上方,或者一条语句的末尾,对该行代码说明

weixin_43544679的博客 8480

开启C++之旅,10分钟带你正式入门C++

一文带你正式入门C++,十分钟简单跨入C++的大门,细节易懂

XQ的博客 366

C++基础入门(超详细)

c++

2301_76575356的博客 1万+

【初学者必备】c++快速入门经典详细教程(零基础小白也可以分分钟学会)

目录1.名称空间using namespace std的解释2.cin和cout输入输出3.关于c++的头文件4.c++的变量声明5.c++特有的bool变量6.c++特有的const定义常量7.c++里超好用的string类 1.名称空间using namespace std的解释 这句话是使⽤“std”这个名称空间(namespace)的意思~因为有的时候不同⼚商定义的函数名称彼此 之间可能会重复,为了避免冲突,就给所有的函数都封装在各⾃的名称空间⾥⾯,使⽤这个函数的时 候就在main函数前⾯写明⽤了什

池鱼 3万+

QT学习 控制台输入输出cin cout

QT5 控制台

圆 5155

【C语言】使用Qt5学习C语言编写Hello World

使用Qt Creator环境编写C语言的 Hello World。作为C/C++的一个IDE,Qt也可以作为初学者学习C和C++的好帮手。文末也提供了网页版的在线IDE,可在浏览器里输入代码、编译代码。

huanqing2010的专栏 8998
上一篇: QT第八九节课笔记-Lambda表达式
下一篇: QT第十十一课程笔记 - 数组和练习
上官可编程
博客等级 码龄14年 1398粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上官可编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值