子德
本帖最后由 [email protected] 于 2017-5-13 07:14 编辑

第二章

你好,世界


索引贴地址



你好,世界



小结

上一章地址












2021.12 数据,可能有更多内容第二章
你好,世界


索引贴地址
这儿


你好,世界


我们今天来做出我们的第一个程序。
学习目标:
在程序中输出Hello world!
这是一个古老的故事。这是所有程序猿的第一个程序。
这个程序常常用于测试开发环境是否安装好。


让我们打开C++,在左上角文件>新建>源代码处创建一个新的源代码。



然后打出下列代码。(所有符号都是英文的)



按下F11(编译运行)。弹出保存窗口,随便保存。
然后再来按次F11。
(有些电脑快捷键不一样,找到”窗口“右下角四个彩色按钮从左往右第三个,相当于F11)
等待一下,你会发现弹出了一个窗口。



如果是这样的,那么恭喜你,你已经正式成为一个程序猿了。


接下来,我将讲述你打出的都是什么。
第一句
#include<cstdio>
这句话的意思是你载了名字叫cstdio的头文件。


头文件是什么意思?


打个比方。我们在生活中需要用到各种各样的东西。比如线、笔、纱布。
而这些东西都放在不同的箱子里:
比如线放在缝纫包,笔放在公文包,纱布放在医药箱。
那么当我需要使用笔的时候我就需要找公文包,要纱布就要找医药箱。
在C++中也是,我想要使用printf这个语句,这个语句放在一个叫cstdio的箱子里面。
那么我就需要用#include<cstdio>这句语句来拿到这个箱子。
#include<xxx>就表示拿到一个名字叫xxx的箱子。


第二句
using namespace std;
这句话你不打也可以。
对于初学者来说几乎没有什么意义。


第三句
int main(){}
程序好比一栋房子,但是只有一个房间有门。
我们要进入或者出去这栋房子就必须从这个房间的门出去。
main就表示这个房间。
程序开始执行和结束执行的地方都是在这儿。
我们把main()叫做”主函数“。
我们后面也可以定义自己的函数。
后面的{}括号就相当于这个房间的墙。
它的意思就是,{}内的东西都在这个叫main的房间里面。
平常我们去别人家做客,肯定会带些礼物,然后主人也会给我回礼对吧。
在程序中,带过去的东西叫做”传递参数“
对方的回礼叫做”返回值“
在这里,int就表示返回值的数据类型(整数)
我们在后面学习其他数据类型后也可以换成返回其他的书局类型。
可以有,也可以没有。
()里面的东西是传递参数。
就拿这个main()主函数的例子来说,
()里面啥都没有,表示你没有传递给这个主函数任何东西。
至于返回值,看下面。
可能有点难理解,后面讲函数的时候会再讲。
对于新人来说,你只要知道:
1.程序从这个叫main的函数里面开始。
2.main{}内的内容就是主函数的内容,在其之外就不是。
第四句
printf("Hello world!");
这句话的意思是:
输出一个Hello world的字符串。
""表示你里面的东西都是字符。
后面的;叫做分号,表示着一个语句的结束。
有了分号,你可以在同一行打一堆语句。
比如这样:
printf("Hello ");printf("world!");
但是为了代码的可读性(别人浏览你代码的时候能否懂你的代码的流程、有什么用)
还是建议一行一个语句。
第五句
return 0;
这表示这个函数结束了。
要返回一个值”0“。
而接收这个返回值的人不知道这是个东西是啥?
也就是不知道它是什么数据类型,要用什么东西来装他。
那么怎么办呢?
记得前面的int main()吧。
int就表示这个函数返回值的数据类型。


小结
打出了作为程序猿的第一个程序。
知道了main()函数是所有程序的起点。
知道了函数的”传递参数“,”返回值“。
懂得了使用"printf"语句。
看到这句话不回复/评分任一个 木有小JJ


上一章地址
第一章 开发环境



子德
luojiarui 发表于 2017-3-18 12:38
说一下吧:

-iostream是Cpp的标准流库,还是有必要讲一下的吧

流输入输出效率低很多,不推荐使用。
以及我辛苦码的3个帖子,你一个帖子都不给点人气- -

子德
luojiarui 发表于 2017-3-18 17:52
然而cstdio也是流库

我指的是cout比起printf效率低。

子德
luojiarui 发表于 2017-3-18 18:00
在圈子混过一段时间。。

并没有听说过这种说法哦。。

是这样的。我们有些题,cout就TLE printf就AC

子德
luojiarui 发表于 2017-3-18 18:19
效率不能用能否通过Accepted来看吧

我一开始把AC理解成某个寄存器应该是没救了XD ...

?不知道你有没有理解错,我的意思是用printf做题目就通过,用cout就超时

Java_command
没有必要翻译HelloWorld这句话吧……
我觉得英文挺好的。
IDE我比较喜欢CLion
你也可以说一下括号可以这么写(废话连篇):
  1. int main(){
  2.     printf("HelloWorld!");
  3.     return 0;
  4. }
复制代码

然后我记得main方法必须要返回0(正常退出),不然编译不过去。有异常才会返回别的吧。


子德
Java_command 发表于 2017-3-18 22:41
没有必要翻译HelloWorld这句话吧……
我觉得英文挺好的。
IDE我比较喜欢CLion

这个好像是JAVA用法辣。
话说不给个人气吗。

Java_command
[email protected] 发表于 2017-3-18 22:49
这个好像是JAVA用法辣。
话说不给个人气吗。

java和c++大括号都可以用两种方法,我比较倾向于我写的方法。
main需要返回0是必须的,希望你写一下。
(不是0就代表非正常退出)
忘了给人气了,马上。

子德
Java_command 发表于 2017-3-19 01:33
java和c++大括号都可以用两种方法,我比较倾向于我写的方法。
main需要返回0是必须的,希望你写一下。
( ...

文中说了啊。文中说了不是返回0就是程序炸了。

彪悍的新手
支持啊
我也是混OI的233
话说namespace不是应该说成命名空间吗

子德
彪悍的新手 发表于 2017-3-19 07:53
支持啊
我也是混OI的233
话说namespace不是应该说成命名空间吗

对啊。方便新手理解而已。

子德
luojiarui 发表于 2017-3-19 09:37
@彪悍的新手

刚刚查了一下,快是真的

OK,到时找个时间填了。

Java_command
[email protected] 发表于 2017-3-19 07:20
文中说了啊。文中说了不是返回0就是程序炸了。

你说的是你接收到的返回是否为0……
但是你可以返回别的。
希望修改。

l1ll5
luojiarui 发表于 2017-3-18 18:00
在圈子混过一段时间。。

并没有听说过这种说法哦。。

抱歉 cin和cout的效率真的很慢
在10W以上数据的读入测试中(亲测 linux环境)cin会比scanf慢近1倍的时间
事实上 对于很多的数据读入 cin一定tle没跑了 但是scanf的效果也不是很理想
一般在oi竞赛中我们自己编写读入函数 对于int类型的读入效率大概为scanf的10倍以上
同时读入函数有多种选择 常数优化永无止境
如果需要的话可以说一下原理

l1ll5
Java_command 发表于 2017-3-19 01:33
java和c++大括号都可以用两种方法,我比较倾向于我写的方法。
main需要返回0是必须的,希望你写一下。
( ...

不需要在程序中写return 0 默认返回0 如果你不写return 2333这样奇怪的东西 都可以正常运行

l1ll5
另外 请问c++可否进行mc插件的编写
本人有一定oi基础 对c++相关语法 算法比较熟悉
如果可以 希望楼主或者路过的大牛神犇可以抽空简要指导一下
如果需要 可以有偿 谢谢
qq:2817629709 请备注mcbbs 谢谢

子德
l1ll5 发表于 2017-3-20 13:37
另外 请问c++可否进行mc插件的编写
本人有一定oi基础 对c++相关语法 算法比较熟悉
如果可以 希望楼主或者路 ...

不知道。不过有可能可以,win10和PE都是C++写的。

子德
Java_command 发表于 2017-3-20 01:01
你说的是你接收到的返回是否为0……
但是你可以返回别的。
希望修改。

ok.这里因为我打的是返回0,返回其他就是炸了。

W3106388458
MCBBS有你更精彩~

Yaossg
luojiarui 发表于 2017-3-18 12:38
说一下吧:

-iostream是Cpp的标准流库,还是有必要讲一下的吧

这段代码第一行就错了iostream没有.h好吗
还有中文符号是什么鬼

luojiarui
本帖最后由 luojiarui 于 2017-4-7 19:49 编辑
姚氏帅哥 发表于 2017-4-7 13:51
这段代码第一行就错了iostream没有.h好吗
还有中文符号是什么鬼


-这是旧标准啦。。个人有这么个癖好

-因为用的是中文的输入法XD

Yaossg
你说方便新人理解,但是你说的很多概念打的比方都不准确
#include既不是载入,也不是调用,而是包含
using namespace不是创建一个工作室,而是使用一个工具箱
此外,你一来就讲函数真的好吗,明明可以先说“以后再解释,先复制粘贴”
就像教java的人教helloworld是不会介绍类的,尽管类在java中类无处不在
还有楼主你弃坑了吗,你弃坑了我就来续好了,论坛真的没有全面的c++教程

子德
姚氏帅哥 发表于 2017-4-12 12:58
你说方便新人理解,但是你说的很多概念打的比方都不准确
#include既不是载入,也不是调用,而是包含
using  ...

没有,只是临近期中考较忙。不过欢迎一起写?

Yaossg
[email protected] 发表于 2017-4-13 13:01
没有,只是临近期中考较忙。不过欢迎一起写?

非常乐意帮忙,我找时间帮你把现在这个帖子改一下,然后弄下一章

luojiarui
l1ll5 发表于 2017-3-20 13:37
另外 请问c++可否进行mc插件的编写
本人有一定oi基础 对c++相关语法 算法比较熟悉
如果可以 希望楼主或者路 ...

不可以

但是开发第三方工具

PumpkinXD
luojiarui 发表于 2017-3-18 12:38
说一下吧:

-iostream是Cpp的标准流库,还是有必要讲一下的吧

C++98之后iostream就没有.h了好不好
并且C++98之后不应该有命名空间声明么?

PumpkinXD
本帖最后由 Lne 于 2017-4-15 10:54 编辑

lz 既然讲的是C++
我建议用C++的io流而不是C的io流
  1. #include<cstdio>
复制代码

应该替换为
  1. #include <iostream>
复制代码
第二我认为刚开始不应该过分讲函数
(当然 主函数例外)还有头文件你不应该解释为"箱子" 你可以将他们解释为"工具"
命名空间的解释也不是很准确
  1. using namespace std;
复制代码
我认为应该解释为声明使用std空间的函数/类


luojiarui
Lne 发表于 2017-4-15 08:02
C++98之后iostream就没有.h了好不好
并且C++98之后不应该有命名空间声明么?

然而。。
本人有这个用旧标准的癖好

Yaossg
luojiarui 发表于 2017-4-15 09:11
然而。。
本人有这个用旧标准的癖好

这种癖好不好的,现在是C++98和C++11的时代
而不是上个世纪80年代
还有C++里面<cstdio>总是比<stdio.h>好
因为前者所有函数、结构都被放在std里面,后者没有
放在std里面可以避免冲突

PumpkinXD
luojiarui 发表于 2017-4-15 09:11
然而。。
本人有这个用旧标准的癖好

你这个癖好得改
现在的C++是C++98 C+11和C99的天下
而c++17也已经完工了
C++98的namespace可以防止函数/对象的冲突而旧标准显然不能做到

我要怎么办
楼主,我输完你的代码后,然后按F11,它弹出了一个让我保存的界面,我算成功了吗?
XP系统

Yaossg
我要怎么办 发表于 2017-4-16 20:41
楼主,我输完你的代码后,然后按F11,它弹出了一个让我保存的界面,我算成功了吗?
XP系统 ...

楼主太忙,我来帮他回你
显然你的快捷键与楼主不一样
你最好直接按编译并运行按钮
如果你真心想学c++,我可以教你,反正我正在收徒弟
看得出来就目前而言你挺认真的

PumpkinXD
我要怎么办 发表于 2017-4-16 20:41
楼主,我输完你的代码后,然后按F11,它弹出了一个让我保存的界面,我算成功了吗?
XP系统 ...

编译器是什么
gnu还是vc++?

Yaossg
本帖最后由 姚氏帅哥 于 2017-4-21 13:40 编辑
Lne 发表于 2017-4-20 22:36
编译器是什么
gnu还是vc++?

楼主教的是devcpp,这个人多半也用的是devcpp


a1264895353
谢谢楼主了 期待继续。

我要怎么办
姚氏帅哥 发表于 2017-4-16 21:22
楼主太忙,我来帮他回你
显然你的快捷键与楼主不一样
你最好直接按编译并运行按钮

好啊,不过我也是个学生党,只能周末上线

我要怎么办
姚氏帅哥 发表于 2017-4-21 10:21
楼主教的是devcpp,这个人多半也用的是devcpp

还有我直接按编译他也是出保存窗口

Yaossg
我要怎么办 发表于 2017-4-23 07:37
还有我直接按编译他也是出保存窗口

我也是学生党。。。所以正好,但是这周我没空,下周末我慢慢教你~

yican666
可以 很强势啊

子德
我要怎么办 发表于 2017-4-23 07:37
还有我直接按编译他也是出保存窗口

忘记讲了要先保存再编译。。


顶个热水袋
。。。竟然连c++教程都有了

Yaossg
[email protected] 发表于 2017-4-23 15:23
忘记讲了要先保存再编译。。

满怀期待看你修改完之后的结果
可是结果很失望
难道你的编辑也被吞掉了?
如果是,我们联名反馈吧,我受不了了,上次也是,竟然还被版主怼回来了
如果不是,是你真的只是改成这样的话,那我就无话可说了
还有你从来不看消息是几个意思啊提醒旁边“消息”两个大字看不到吗。。。

子德
姚氏帅哥 发表于 2017-5-13 22:24
满怀期待看你修改完之后的结果
可是结果很失望
难道你的编辑也被吞掉了?

编辑被吞了 早上编辑一个小时 然后保存 然后回到了原来状态

qaz2296777814

复制代码

Reload重启
c++可以做我的世界插件吗?

子德
Reload重启 发表于 2017-7-26 13:20
c++可以做我的世界插件吗?

可以做WIN10与PE.

九仞
luojiarui 发表于 2017-3-18 12:38
说一下吧:

-iostream是Cpp的标准流库,还是有必要讲一下的吧

这段代码是错的,正确的应该是:
#include<iostream>//导入标准流库int main(){//主函数std::cout<<"Hello World "<<std::endl;//std::cout为标准库的输出方法,std::endl可以理解为换行符


记住使用cout时数据流向cout所以方向朝向cout
使用cin时数据流向变量,所以方向朝向cin

九仞
luojiarui 发表于 2017-3-18 12:38
说一下吧:

-iostream是Cpp的标准流库,还是有必要讲一下的吧

你说别人是旧标准的编译器,自己却也是用旧标准的iostream.h现在iostream后面早就没有h了,不信你把代码贴到VS2015试试看可不可以编译。

九仞

这更贴速度给你个赞????

迷失的绵羊
话说,我用dev-c++
我居然完全没听懂...

第一页 上一页 下一页 最后一页