概述
基本输入输出
- 前言
- 人生的第一个程序
- 头文件概念
- 命名空间概念
- 最重要的函数——主函数
- 初步认识输入输出
- 一份优(chou)秀(lou)的代码
- 运算基础——变量定义
- 交互基础——输入输出
- 输入详解
- 输出详解
- 结尾
前言
哪有那么多废话,直接开冲
IDE之类的网上随便一搜一大堆,但我这里还是推荐大家使用DevC++或VS Code
人生的第一个程序
相信无数的同学和我一样,HelloWorld都是人生中写的第一个真正属于自己的程序,但是在这短短的几行代码中,作为初学者的我们仍然可以发掘其中的精美之处
#include<cstdio>
using namespace std;
int main()
{
printf("Hello World!");
return 0;
//这里就混用C的标准输入输出了
}
在这个代码中,我们一句一句来仔细分析其用途
头文件概念
1.首先引入眼帘的是
#include<cstdio>
这一句是整个代码的最关键部分,它告诉了这个程序在运行的过程中需要调用的函数在哪里,就像你在翻译文章时需要查字典,当文章中出现一个你不认识的单词(相当于程序中的函数),你就需要去相应的字典中去查找这个单词(你总不可能拿着一个俄语单词查日语字典吧),当你没有这本字典时,你的翻译工作就罢工了,同理,你的程序编译就报错了
再来仔细分析这一句的语法
#include 声明后面是一个准备让计算机调用的系统库文件
<…> 则声明了库文件的名称
而其中所写的 cstdio 才是我们真正需要的那个库
与之相似,C++为我们提供了丰富的模板库,如cstring,algorithm,cmath等等,这些我们以后再将
命名空间概念
2.紧接着的是
using namespace std;
这一句声明了所有的库文件的变量名都在一个叫做‘std’的命名空间中
最重要的函数——主函数
3.然后进入程序真正运行的部分——主函数
int main()
{
printf("Hello World!");
return 0;
}
抛去一切外围代码,我们可以得到一个精简的函数,如下
int main()
{
//这里省略一万行代码
return 0;
}
这一个函数被我们叫做主函数,是我们整个代码的中心,其他一切函数和运算,都要以主函数起点进行调用
最后,我们的主函数中还剩下了一句
printf("Hello World!");
这一句,我们让这个程序在console(控制台)窗口中打印了 Hello World 这一句话,是程序真正是实现人机交互的代码
初步认识输入输出
与此相近,在我们的c++中,有
scanf("...",...);
printf("...",...);
cin >> ...;
cout << ...;
等等诸多输入输出方式
当有了输入与输出,我们的代码功能就变得丰富了起来
一份优(chou)秀(lou)的代码
比如,我们需要输入两个整数,分别对其进行加减乘除运算并直接输出结果,那么我们就可以有以下代码
#include<cstdio>
using namespace std;
int main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d %d %d %d",a+b,a-b,a*b,a/b);
return 0;
}
在这个短短几行的代码中,仍然有很多值得我们学习的新知识
运算基础——变量定义
跳过上面讲过的重复部分,第一行新的代码就是
int a,b;
在这一行代码中,我们定义了两个整数型变量:a,b
而前面的 int 则是起到告诉程序我们定义的变量类型的作用
与此相似的,我们还有short,int,long,long long这些整数型变量及其对应的无符号版本
那么问题来了,这么多的变量,它们之间是不是又区别呢?
答案是肯定的,而且很多时候是你的代码能跑出满分和零分的区别,但是,在这一讲,我们不做过多的探讨,因为对于整数,int型变量在大多数时候是完全够用的
交互基础——输入输出
输入详解
接下来,是我们重要的输入部分
scanf("%d%d",&a,&b);
这一行的知识点较多,让我们来一个一个了解
首先,我们见到的是一个叫做 scanf 的新函数,与 printf 在控制台答应不同,它能够从我们的控制台上读取数字、字符等我们输入的或文件的数据
而内部双引号的 %d 表示我们告诉计算机,下一个我们即将读取的,是一个整数,并且将我们读取到的整数赋值给后面用来储存这个整数的变量,比如后面的a、b
但是,细心的同学肯定注意到了,我们后面的a、b并不是孤零零的,而是在其前面写了一个 & ,这个符号在这里我们称其为取地址符,它可以将我们当前这个变量在内存中的地址读取出来,发送给scanf函数,以便scanf函数可以顺利的赋值
为什么要使用取地址符
我们的一个变量,就如同一个装货物的仓库
我们呢的变量名就是这个仓库的名字
我们对变量进行运算,本质就是对储存在这个变量中的数据进行运算
同理,我们直接读取变量,也是读取的变量内部的信息
但是,当我们用 scanf 向仓库中放入货物时,就出问题了
就像你的快递,小哥问你,你家住哪里?你总不可能回答:我家有电脑,冰箱等等吧
所以,我们在读取时,需要将变量的内存地址,而不是这个变量内部的值返回给scanf函数
当然,有能力的同学也可以直接看scanf的源代码
在这里,明显可以系统调用的时一个指针int __cdecl scanf(const char * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
输出详解
然后,就是我们重要的输出了
printf("%d %d %d %d",a+b,a-b,a*b,a/b);
一个再漂亮的函数,没有输出或返回值,一切都没有了意义
在这个函数中我们时整合了运算和输出,函数会优先计算表达式的具体值,然后在在控制台以整数类型输出
而这个双引号的内容,定义了输出的具体格式,在这个样例中,我们的输出格式会和引号内格式一模一样,即 [一个整数][空格][一个整数][空格][一个整数][空格][一个整数]
有了 printf 函数,就可以十分轻松的验证 scanf 中使用的取地址符的功能
代码如下:#include<cstdio> using namespace std; int a; int main() { printf("a的数值:%dn",a); printf("a的地址(10进制):%dn",&a); printf("a的地址(16进制):%xn",&a); return 0; }
结尾
到目前为止,你就已经基本认识了C和C++的输入与输出基础,有了基本的交互,再加上中间过程的运算,代码就可以爆发出去穷无尽的潜力
最后
以上就是妩媚发夹为你收集整理的一位高中竞赛蒟蒻的大学C++学习日记-第一篇-基本输入输出前言人生的第一个程序初步认识输入输出结尾的全部内容,希望文章能够帮你解决一位高中竞赛蒟蒻的大学C++学习日记-第一篇-基本输入输出前言人生的第一个程序初步认识输入输出结尾所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复