【C++】HelloWorld
文章目录
- HelloWorld
- 打开VS2022创建新项目
- 配置新项目
- HelloWorld
- 新建其他项目
- 播放MP3
- 引入必需文件
- 添加音乐
- 播放音乐
- 完整代码
- C++的编译与执行
- C++编码规范
HelloWorld
打开VS2022创建新项目
配置新项目
在VS中,解决方案是项目的容器,一个解决方案中可以有多个项目
HelloWorld
#include <iostream>
using namespace std;
int main(){cout<<"Hello World!"<<endl;return 0;
}
- 以#开头的语句称为预处理器指令;#include语句不是必须的,但是如果一旦程序中有该语句,就必须将它放在程序的开始处;
- 将iostream头文件(即.h)的内容添加到程序中,iostream中包含了有关输入输出语句的函数
- using 简化对命名空间的使用,使用库中的函数或者类
- std意为标准库,::为域运算符
- <<符号表示把字符串“Hello World!”发送给cout打印,endl是控制符,表示重启一行(\n),确保程序在继续运行前立即刷新输出,与其说程序显示了一条消息不如说它将一个字符串插入到了输出流中,从概念上看,输出是一个流,可以理解为从程序中流出的一系列字符,cout对象表示这种流,在iostream文件中定义,cout右边的<<符号是插入运算符,可以将右侧信息插入流中。
新建其他项目
右键解决方案,选择添加->新建项目,进行新建
设置为启动项目,否则调试启动的会是上一个项目
播放MP3
引入必需文件
#include <Windows.h>
#include <mmstream.h>
//2.引入Winmm库
#pragma comment(lib,"Winmm.lib")
添加音乐
首先需要把待播放的mp3文件放到当前项目的根目录下,右键项目,选择“在文件资源管理器中打开文件夹”,进入根目录,把文件放在根目录下;
//打开音乐文件,向mci设备发送一段字符串指令,需要把mp3文件复制到当前项目的根目录下//L:因为文件名中有中文需要用L来表示这是一个Unicode编码的字符串//alias表示起别名//后面为固定的默认参数mciSendString(L"open zmj-6806-204.MP3 alias sound1",NULL,0,NULL);
播放音乐
//播放音乐文件,repeat重复播放mciSendString(L"play sound1 repeat", NULL, 0, NULL);system("pause");//等待音乐播放完
完整代码
#include <iostream>
#include <Windows.h>
#include <mmstream.h>
#pragma comment(lib,"Winmm.lib")
using namespace std;
int main()
{cout << "播放音乐\n";mciSendString(L"open zmj-6806-204.MP3 alias sound1",NULL,0,NULL);mciSendString(L"play sound1", NULL, 0, NULL);system("pause");
}
C++的编译与执行
预处理器处理所有的预处理指令: 将所有的#include头文件的完整内容复制到.cpp文件中
编译器把每个.cpp文件(源文件)转换为.o或者.obj文件(对象文件): 包含了源文件内容对应的机器码
链接程序把程序的.obj文件合并到包含完整可执行程序的文件中(.exe)
cl HelloWorld.cpp /c # 只编译,不链接
cl HelloWorld.obj /link # 链接生成.exe文件
C++编码规范
- 每条语句占一行
- 每个函数都有一个开始和结束花括号,花括号各占一行,函数中的语句相对于花括号进行缩进
- 与函数名称相关的小括号周围没有空白
- 养成书写注释的好习惯,有助于代码阅读,//为单行注释,/*注释内容*/为多行注释
常用快捷键
【C++】HelloWorld相关推荐
- 【Unity3D】Helloworld
这个游戏引擎大名鼎鼎,容易学,能很快弄出很多好玩的游戏.Unity3D有个好处,是兼容往下的版本.这一点起码比起隔壁的Cocos2dx好多了,Cocos2dx现在都不知道更到什么版本了,3.x只能用V ...
- 【win32】Helloworld
更加应该说是一个普通Win32程序的Hello world.一直以来VC6.0常常是用来考试的,学校所教的程序都是一些DOS界面的控制台程序,即便是到了C++,当初憧憬满满的以为是从DOS界面升级到W ...
- 【Mybatis】Helloworld
Mybatis和Hibernate一样是一个Nosql工具,什么是Nosql?原本,应该在Java中写sql语句,才能对Mysql等数据库进行增删改查,但是经过Nosql工具之后,在Java你只需要一 ...
- 【Codevs1346】HelloWorld编译器
http://codevs.cn/problem/1346/ 可怜我战绩 // <1346.cpp> - 10/30/16 17:12:09 // This file is made by ...
- 【Ratchet】Ratchet2.0.2的下载、配置与Helloworld
Ratchet这东西经常被人诟病,说其组件不够多,很多东西需要自己写,但是这也正是它的优势,因为它是完全基于基本的HTML与javascript,你可以在移动端利用最基本的HTML写出自己的想要的东西 ...
- 【RabbitMQ】 WorkQueues
消息分发 在[RabbitMQ] HelloWorld中我们写了发送/接收消息的程序.这次我们将创建一个Work Queue用来在多个消费者之间分配耗时任务. Work Queues(又称为:Task ...
- 【php】基于Xajax的在线聊天室、直播间
关于php的Xajax到底是什么,这里不再介绍,详情可以看我<[php]Xajax Helloworld>(点击打开链接)与<[php]注册系统和使用Xajax即时验证用户名是否被占 ...
- 【Unity3D】利用物体碰撞检测、键盘输入处理完成平衡球游戏
物体碰撞检测是游戏编程里面非常常用的功能,一旦碰到就怎么怎么样,比如掉血等.Unity3D直接就提供了物体碰撞检测的接口,实现起来很方便.借此功能,完成了一个平衡球游戏,同时说明Unity3D的物体碰 ...
- 【GraphMaker】Unity3D图表——柱状图、折线图、饼图
http://blog.csdn.net/yongh701/article/details/71637090?utm_source=itdadao&utm_medium=referral 版权 ...
最新文章
- 嵌入式linux hdmi分辨率,【Firefly3399Pro】rk3399pro在Framebuffer状态命令行模式中强制HDMI输出固定分辨率...
- Android Volley完全解析4:带你从源码的角度理解Volley
- VC++ 6.0 中如何使用 CRT 调试功能来检测内存泄漏[转]
- 牛客题霸 NC11 将升序数组转化为平衡二叉搜索树
- android mvvm流程图,MVVM框架模式详解
- TokenInsight:反映区块链行业整体表现的TI指数较昨日同期下跌5.04%
- vue el-date-picker 直接赋值不生效、数据绑定无效
- css基础知识汇总4
- android导航工厂设置密码,导航工厂设置密码大全,所有导航工厂密码多少
- 仿支付宝手势密码解锁
- Qt配置opencv
- 什么耳机适合华为手机?通话质量好的蓝牙耳机
- Educational Codeforces Round 7 F. The Sum of the k-th Powers(拉格朗日插值)
- 【Unity VR开发基础】Player视角设置调整与地面的相对高度
- 诺基亚衰落的原因及其如何走去困境
- 计算机灾难性恢复,计算机灾难恢复有哪些不同的选择(Different Options for Computer Disaster Recovery)?...
- AUTOSAR软件架构简介
- 自学maya总是找不到对的方向怎么办?是你没有掌握以下几点
- 让ChatGPT介绍一下ChatGPT
- c语言二级软件破解,C语言二级题库