当前位置: 首页 > news >正文

【c++笔记】总结!c++与c语言的不同之处

(Θ3Θ) hi~

众所周知\(^o^)/~,c语言和c++联系密切,又相互区别,本篇文章主要介绍c++与c语言的区别与联系以及一些简单的不同点的运用,很适合刚接触c++的朋友,一起来瞧瞧看吧~~

目录

一、文章内容梗概

二、概念篇:简述c++与c语言的区别

part 1:区别

part 2:联系

三、实战篇

part 1:基本区别

part 2:求字符串长度

①c语言 

 ②c++

方法1:size()函数

方法2:length()函数

 part 3:输入输出精讲(输出固定位数的浮点数以及换行等一系列操作)

①c语言

②c++

输入输出知识点总结

setprecision与fixed函数 

 endl函数

总结:


一、文章内容梗概


①概念篇:简述c++与c语言的区别

②实战篇:c语言与c++的不同使用场景

③总结

二、概念篇:简述c++与c语言的区别

part 1:区别

1. 语法:C语言的语法比较简单和直接,更接近底层的计算机操作。C++语言在C语言的基础上增加了面向对象编程(OOP)的特性,如类、继承、多态等;

2. 面向对象编程:C语言不直接支持面向对象编程,而C++语言是一种面向对象的编程语,C++通过类和对象的概念,提供了封装、继承和多态等特性,使得程序更易于组织、重用和维护;

3. 标准库:C语言的标准库主要包含了一些基本的函数和数据类型,如stdio.h、stdlib.h等,C++语言的标准库更加丰富,除了C语言的标准库之外,还包含了更多的容器、算法、字符串处理等功能,如iostream、vector、string等;

4. 异常处理:C语言不直接支持异常处理机制,而C++语言提供了异常处理的机制,用于捕获和处理运行时的异常情况;

part 2:联系

1. 共同的基础:C++语言是在C语言的基础上发展而来的,因此它们有许多共同的基础,如变量、数据类型、运算符等;

2. 兼容性:C++语言保持了对C语言的兼容性,可以使用C语言的代码,并且C++编译器可以编译C语言的代码;

3. 相似的编程风格:尽管C语言和C++语言在语法和特性上有所区别,但它们都鼓励使用结构化的编程风格,注重模块化和可读性

4. 底层系统编程:C和C++都可以用于底层的系统编程,如操作系统、嵌入式系统等,因为它们提供了对硬件的直接访问和控制的能力

三、实战篇

part 1:基本区别
//c语言
头文件:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
....等等
输入输出:
scanf
printf
//c++
万能头文件(先只讲这个)
#include <bits/stdc++.h>
using namespace std;
输入输出:
cin>>;
cout<<;
part 2:求字符串长度

题目描述

输入一个不小于 100100 且小于 10001000,同时包括小数点后一位的一个浮点数,例如 123.4123.4 ,要求把这个数字翻转过来,变成 4.3214.321 并输出。

输入格式

一行一个浮点数

输出格式

一行一个浮点数

输入案例:

123.4

输出案例:

4.321
①c语言 
#include <stdio.h>
#include <string.h>
int main()
{char a[100];gets(a);int len;len=strlen(a);for(int i=len-1;i>=0;i--)printf("%c",a[i]);return 0;
}

这里用到的是strlen函数,注意也要用到<string.h>头文件

 ②c++
方法1:size()函数
#include <bits/stdc++.h>
using namespace std;
string a;
int main()
{cin>>a;int len=a.size();
for(int i=len-1;i>=0;i--)
{cout<<a[i];
}	
return 0;
}
方法2:length()函数
#include <bits/stdc++.h>
using namespace std;
string a;
int main()
{cin>>a;int len=a.length();
for(int i=len-1;i>=0;i--)
{cout<<a[i];
}	
return 0;
}

这里对字符串的运用与c语言的很大区别在于需要先定义字符串:string a,然后再运用a.size或者a.length函数进行计算字符串长度

 part 3:输入输出精讲(输出固定位数的浮点数以及换行等一系列操作)

题目描述

现在有 t毫升肥宅快乐水,要均分给 n 名同学。每名同学需要 2 个杯子。现在想知道每名同学可以获得多少毫升饮料(严格精确到小数点后 3 位),以及一共需要多少个杯子。

输入格式

输入一个实数 t 和一个正整数 n,使用空格隔开。

输出格式

输出两行,第一行输出一个三位小数,表示可以获得多少毫升饮料。第二行输出一个正整数,表示一共需要多少个杯子。

输入样例

500.0 3

输出样例

 166.667

  6

①c语言
#include <stdio.h>
int main()
{double a;int b;scanf("%lf%d",&a,&b);printf("%.3lf\n%d",a/b,b*2);return 0;
}
②c++
#include <bits/stdc++.h>
using namespace std;
int main()
{double a;int b;cin>>a>>b;
cout<<setprecision(3)<<fixed<<a/b<<endl<<b*2;
return 0;
}
输入输出知识点总结

①输入:
可连续输入如:cin>>a>>b;

并且不用注明类型

②输出:
输出固定位数时:用setprecision函数
-----------------------------下有函数介绍-----------------------

输出时的四舍五入:用到fixed函数-----------------------------下有函数介绍-----------------------

输出换行:用到endl-----------------------------下有函数介绍----------------------------

同样的是,输出操作也可以连续进行且不用注明类型

③最后注意

在c++中也可穿插c语言的函数,比如输入输出,所以本题还可以写为

#include<cstdio>
#include<iostream>
using namespace std;
int main()
{double a;int b;cin>>a>>b;printf("%.3lf\n%d\n",a/b*1.0,b*2);return 0;
}

setprecision与fixed函数 

       fixed函数仅在iomanip头文件中定义,该函数可以控制输出的浮点数的小数位数。与其他输出控制函数不同的是,fixed函数将指定小数位数之后的输出数字按照四舍五入进行保留。

使用fixed函数时,需要使用流对象的setprecision函数指定所需的小数位数,并使用固定点表示法,即使用std::fixed修饰符来指定输出格式。

 endl函数

endl英语意思是end of line,即一行输出结束,然后输出下一行。endl与cout搭配使用,意思是输出结束。

总结:

①虽然都是一些大水题没错,但其中也蕴含不少有关c语言与c++的区别,如果对我的文章有什么建议或者想法的话,欢迎私信或者评论,我一定会改正的!

②感谢您的耐心看到最后,祝您生活愉快,学业进步!我们下次见~┏(^0^)┛


 

相关文章:

【c++笔记】总结!c++与c语言的不同之处

(Θ&#xff13;Θ) hi~ 众所周知\(^o^)/~&#xff0c;c语言和c联系密切&#xff0c;又相互区别&#xff0c;本篇文章主要介绍c与c语言的区别与联系以及一些简单的不同点的运用&#xff0c;很适合刚接触c的朋友&#xff0c;一起来瞧瞧看吧~~ 目录 一、文章内容梗概 二、概念…...

大模型PEFT技术原理(一):BitFit、Prefix Tuning、Prompt Tuning

随着预训练模型的参数越来越大&#xff0c;尤其是175B参数大小的GPT3发布以来&#xff0c;让很多中小公司和个人研究员对于大模型的全量微调望而却步&#xff0c;近年来研究者们提出了各种各样的参数高效迁移学习方法&#xff08;Parameter-efficient Transfer Learning&#x…...

VMware vSphere运维管理手册

适用版本:VMware vSphere 7.0 VMware vSphere 是 VMware 的虚拟化平台,可将数据中心转换为包括 CPU、存储和网络资源的聚合计算基础架构。vSphere 将这些基础架构作为一个统一的运行环境进行管理,并为您提供工具来管理加入该环境的数据中心。 ![[Pasted image 20231212132…...

学习笔记-mysql-各种函数的基本使用

1. 聚合函数 count , sum , min , max ,avg , group_concat() -- 将所有员工的名字合并成一行 select group_concat(emp_name) from emp; -- 指定分隔符合并 select department,group_concat(emp_name separator ; ) from emp group by department; -- 指定排序方式和分隔…...

DD小桔高级数分 2面挂

偏业务分析一点&#xff0c;注重AB实验在实际业务中的操作、业务方交流方式 一面|同事面 中规中矩&#xff0c;面试内容偏简单&#xff0c;不知道是不是因为晚8点面试的原因项目没有进行深究 自我介绍项目介绍1.你在实际项目中是怎么设计AB实验2.你在实际业务场景中是怎么判…...

居中面试问题

前端常问居中面试问题 css文本居中 文本水平居中 <div class"father"><div class"child"><div> <div>子类元素为行内元素&#xff0c;则给父类元素定义text-align:center 如果子元素是块元素&#xff0c;则给子元素定义margin&…...

网页设计-用户体验

Use Cases (用例) 用例是用户如何在网站上执行任务的书面描述&#xff0c;从用户的角度描述了系统响应请求时的行为。每个用例都是用户实现目标的一系列简单的步骤。简言之&#xff0c;用例是一种用于描述系统如何满足用户需求的方法。 用例的好处 1. 明确需求&#xff1a; Use…...

docker应用:vocechat

简介&#xff1a;VoceChat是一款超轻量级的Rust聊天应用程序、API和SDK&#xff0c;优先考虑私人托管。使用VoceChat建立您自己的聊天功能&#xff01;作为一款非常好用的通讯应用程序&#xff0c;它可以让你与朋友、家人和同事进行即时消息聊天&#xff0c;支持图片视频的分享…...

linux 02 vmware的快照,文件管理

01.快照 使用快照&#xff1a; 同时的快照管理器&#xff1a; 如果想要返回快照&#xff0c;选择要选择的快照&#xff0c;跳转 02. 文件管理&#xff1a; cd 修改当前路径 02.touch 创建文件 03. mkdir 创建文件夹 mkdir -p 文件夹 &#xff08;创建之前没有的上级文件…...

项目架构之Zabbix部署

1 项目架构 1.1 项目架构的组成 业务架构&#xff1a;客户端 → 防火墙 → 负载均衡&#xff08;四层、七层&#xff09; → web缓存/应用 → 业务逻辑&#xff08;动态应用&#xff09; → 数据缓存 → 数据持久层 运维架构&#xff1a;运维客户端 → 跳板机/堡垒机&#x…...

RocketMQ源码阅读-Message消息存储

RocketMQ源码阅读-Message消息存储 1. CommitLog的作用2. CommitLog 存储消息3. 时序图4. 小结 在Broker消息接收一篇中&#xff0c;分析到Broker接收到消息&#xff0c;最终会调用CommitLong#putMessage方法存储消息。 本篇来分析CommitLong#putMessage存储消息的流程。 1. C…...

《C语言学习》---郝斌版---笔记

简介 学习计算机&#xff0c;离不开C语言的学习&#xff0c;而C语言学习过程中的视频课教程&#xff0c;目前来说&#xff0c;如果郝斌老师的C语言排第二&#xff0c;没有人敢排第一 郝斌老师的C语言教程&#xff0c;通俗易懂&#xff0c;引人发思&#xff0c;特别适合新手入门…...

Python(32):字符串转换成列表或元组,列表转换成字典小例子

1、python 两个列表转换成字典 字符串转换成列表 列表转换成字典 column "ID,aes,sm4,sm4_a,email,phone,ssn,military,passport,intelssn,intelpassport,intelmilitary,intelganghui,inteltaitonei,credit_card_short,credit_card_long,job,sm4_cbc,sm4_a_cbc" …...

CentOS 7 安装私有平台OpenNebula

目录 一、配置yum源 二、配置数据库MySQL 2.1 安装MySQL 2.2 修改MySQL密码 2.3 创建项目用户和库 三、安装配置前端包 四、设置oneadmin账号密码 五、验证安装 5.1 命令行验证安装 5.2 数据存放位置 5.3 端口介绍 5.4 命令介绍 六、访问 6.1 设置语言 6.2 创建主…...

(aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器

1. 背景介绍 在先前的博客文章中&#xff0c;我们已经搭建了一个基于SRS的流媒体服务器。现在&#xff0c;我们希望通过Web接口来控制这个服务器的行为&#xff0c;特别是对于正在进行的 RTSP 转码任务的管理。这将使我们能够在不停止整个服务器的情况下&#xff0c;动态地启动…...

基于STM32微控制器的四轮智能小车控制系统设计

标题&#xff1a;基于STM32微控制器的四轮智能小车控制系统设计与实现 摘要&#xff1a; 本文针对移动机器人领域的应用需求&#xff0c;详细介绍了基于STM32系列单片机&#xff08;以STM32F103C8T6为例&#xff09;为核心的四轮小车控制系统的设计和实现过程。该系统集成了电…...

JPA的复杂查询包括一对多多对一和多对多的查询

1. 多表关联查询和排序 假设我们有两个实体类&#xff1a;Customer和Order&#xff0c;它们之间是一对多的关系&#xff0c;即一个客户可以有多个订单。我们想要查询某个客户的所有订单&#xff0c;并按订单金额进行降序排序。 Entity Table(name "customers") pu…...

电脑文件mfc100u.dll丢失的解决方法分析,怎么修复mfc100u.dll靠谱

mfc100u.dll丢失了要怎么办&#xff1f;其实很多人都遇到过这样的电脑故障吧&#xff0c;说这个mfc100u.dll文件已经不见了&#xff0c;然后一些程序打不开了&#xff0c;那么这种情况我们要怎么解决呢&#xff1f;今天我们就来给大家详细的说说mfc100u.dll丢失的解决方法。 一…...

从DETR到Mask2former(2): 损失函数loss function

DETR的损失函数包括几个部分&#xff0c;如果只看论文或者代码&#xff0c;比较难理解&#xff0c;最好是可以打断点调试&#xff0c;对照着论文看。但是现在DETR模型都已经被集成进各种框架中&#xff0c;很难进入内部打断掉调试。与此同时&#xff0c;数据的label的前处理也比…...

Java21 + SpringBoot3集成WebSocket

文章目录 前言相关技术简介什么是WebSocketWebSocket的原理WebSocket与HTTP协议的关系WebSocket优点WebSocket应用场景 实现方式1. 添加maven依赖2. 添加WebSocket配置类&#xff0c;定义ServerEndpointExporter Bean3. 定义WebSocket Endpoint4. 前端创建WebSocket对象 总结 前…...

鲸鱼优化算法WOA改进预告

鲸鱼优化算法&#xff08;Whale Optimization Algorithm&#xff0c;WOA&#xff09;是一种基于自然界中鲸鱼群体行为的启发式优化算法。这个算法模拟了鲸鱼的觅食行为和社会行为&#xff0c;通过模拟这些行为来解决优化问题。 以下是鲸鱼优化算法的一些关键特点和步骤&#x…...

Nightingale 夜莺监控系统 - 告警篇(3)

Author&#xff1a;rab 官方文档&#xff1a;https://flashcat.cloud/docs/content/flashcat-monitor/nightingale-v6/usage/alert/alert-rule/ 目录 前言一、配置1.1 创建钉钉机器人1.2 n9e 创建通知用户1.3 n9e 创建团队&#xff08;组&#xff09;1.4 将通知用户添加团队1.…...

【LeetCode2696】删除子串后的字符串最小长度

1、题目描述 【题目链接】 标签&#xff1a;栈 、字符串、模拟 难度&#xff1a;简单 给你一个仅由 大写 英文字符组成的字符串 s 。 你可以对此字符串执行一些操作&#xff0c;在每一步操作中&#xff0c;你可以从 s 中删除 任一个 “AB” 或 “CD” 子字符串。 通过执行操作…...

VMware安装CentOS7虚拟机

VMware 安装 获取 VMware 安装包 下载地址&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1ELR5NZa7rO6YVplZ1IUigw?pwdplz3 提取码&#xff1a;plz3 包括&#xff1a;当然&#xff0c;也可以自己去别的地方下载&#xff0c;WMware 版本都差不多&#xff0c;现在用的比…...

Linux第22步_安装CH340驱动和串口终端软件MobaXterm

开发板输出信息通常是采用串口&#xff0c;而计算机通常是USB接口&#xff0c;为了让他们之间能够交换数据&#xff0c;我们通常采用USB转串口的转换器来实现。目前市场上的串口转换器大多是采用CH340芯片来实现的&#xff0c;因此我们需要在计算中安装一个CH340驱动程序&#…...

Elasticsearch 地理空间搜索 - 远超 OpenSearch

作者&#xff1a;来自 Elastic Nathan_Reese 2021 年&#xff0c;OpenSearch 和 OpenSearch Dashboards 开始作为 Elasticsearch 和 Kibana 的分支。 尽管 OpenSearch 和 OpenSearch Dashboards 具有相似的血统&#xff0c;但它们不提供相同的功能。 在分叉时&#xff0c;只能克…...

USB micro输入口中三个问题详解——差分信号、自恢复保险丝SMD1210P050TF、电容滤波

前言&#xff1a;本文对USB micro输入口中遇见的三个问题进行详解&#xff1a;差分信号、自恢复保险丝SMD1210P050TF、电容滤波 目录&#xff1a; 差分信号 自恢复保险丝SMD1210P050TF 电容滤波 如下图&#xff0c;USB为U-F-M5DD-Y-1型号&#xff08;9个引脚&#xff0c;除…...

mysql原理--undo日志1

1.事务回滚的需求 我们说过 事务 需要保证 原子性 &#xff0c;也就是事务中的操作要么全部完成&#xff0c;要么什么也不做。但是偏偏有时候事务执行到一半会出现一些情况&#xff0c;比如&#xff1a; (1). 事务执行过程中可能遇到各种错误&#xff0c;比如服务器本身的错误&…...

Zookeeper系列(一)集群搭建(非容器)

系列文章 Zookeeper系列&#xff08;一&#xff09;集群搭建&#xff08;非容器&#xff09; 目录 前言 下载 搭建 Data目录 Conf目录 集群复制和修改 启动 配置示例 测试 总结 前言 Zookeeper是一个开源的分布式协调服务&#xff0c;其设计目标是将那些复杂的且容易出错的分…...

【高等数学之泰勒公式】

一、从零开始 1.1、泰勒中值定理1 什么是泰勒公式?我们先看看权威解读: 那么我们从古至今到底是如何创造出泰勒公式的呢? 由上图可知&#xff0c;任一无穷小数均可以表示成用一系列数字的求和而得出的结果&#xff0c;我们称之为“无穷算法”。 那么同理我们想对任一曲线来…...