网站建设公司推荐 金石下拉,idc机房,望野古诗朗读,wordpress 半透明关于专栏
这个专栏是优质的C教程专栏#xff0c;如果你还没看过第0篇#xff0c;点击这里去第0篇
本专栏一致使用操作系统#xff1a;macOS Ventura#xff0c;代码编辑器#xff1a;CLion#xff0c;C编译器#xff1a;Clang
感谢一路相伴的朋友们#xff0c;感谢你…关于专栏
这个专栏是优质的C教程专栏如果你还没看过第0篇点击这里去第0篇
本专栏一致使用操作系统macOS Ventura代码编辑器CLionC编译器Clang
感谢一路相伴的朋友们感谢你们的支持 ^ _ ^
博主反馈非常及时如果你在阅读的时候遇到问题可以直接在评论区提问博主看到后会在24小时内给你反馈
这两天出去旅游了没有及时更新先向关注这个专栏的朋友道歉但我们没有断更哦
C教程 - How to C系列专栏第5篇 目录
关于专栏
更新记录
2023年8月22日
前言
cin
cout语句的整合
函数
结语
快捷翻页
本文参考文章书籍 更新记录
2023年8月22日
发布第一篇文章 前言
程序有了输出怎么输入怎么把cout写的简洁一点函数怎么写 cin
下面我们可以来看一条程序对前面的程序做了扩展使用cin
#include iostreamint main(void)
{using namespace std;int paper;cout How many pieces of paper do you have? endl;cin paper;paper paper - 2;cout Blog time!;cout endl;cout Now you have ;cout paper;cout pieces of paper.;cout endl;return 0;
}下面是这段程序的示例输出
How many pieces of paper do you have?
20
Blog time!
Now you have 18 pieces of paper. 这里我们可以看出键盘输入的信息“20”被传递给了paper变量从cout中那里我们可以看出实际上这个过程可以理解为键盘输入的数据流向了paper变量显然cin是一个输入流
cin属于iostream中的istream类中的一个对象
可以看作信息由大的一遍流入计算机iostream把cin定义为了表示输出流的对象需要在运算符右侧提供一个变量用于接受输入的数据在示例程序中paper被设定为整数变量传入数据会被转换为用于存储整数的形式 cout语句的整合
比如我们要输出
HelloIm abcd
其中abcd是需要用户的输入那在此之前我们会这么写
...cin in;
cout Hello Im ;
cout in;
cout .;
cout endl;
这样很麻烦还显得程序很难看没有必要这么写对吗
我们可以整合成这样
...cin in
cout Hello Im in . endl; 这样原本要4行的输出被整合进了一行还更漂亮是吗
如果你喜欢分行也可以这样
...cin in;
cout Hello Im ; in; .; endl;
函数
函数可以创建C程序的模块对C对OOP至关重要现在我们来简单讲讲函数的一些基本特征
有函数的返回值将会生成一个值这个值可以赋予给变量或者其他表达式使用比如希望使用sqrt()函数并把返回值赋予给变量c1那么我们就可以在代码中使用这样的语句
...
c1 sqrt(4)
...
这里将使用sqrt函数包括函数调用的函数叫做调用函数被语句调用的函数叫做被调用函数
圆括号中的值这里是4是要传递给函数的值括号里的值被称为参数计算的结果为2这个值被放回给程序这个值就被称为返回值
函数原型之于函数就像变量声明之于变量—指出涉及的类型
例如C库将sqrt()函数定义成将一个可能带小数部分的数字如 6.25作为参数并返回一个相同类型的数字
有些语言将这种数字称为实数但是C将这种类型称为double在之后我们会讲解
sqrt()的函数原型像这样
double sqrt(double);
第一个double意味着sqrt()将返回一个double值
括号中的double意味着sqrt()需要一个double参数
因此该原型对sqrt()的描述和下面代码中使用的函数相同
double c1;
c1 sqrt(4);
在程序中使用sqrt()时也必须提供原型可以用两种方法来实现
在源代码文件中输入函数原型包含头文件cmath(老系统为math.h)其中定义了原型
在这里更建议第二种方法因为头文件更有可能使原型正确对于C库中的每个函数都在一个或多个头文件中提供了其原型可以通过手册或在线帮助查看函数描述来确定应使用哪个头文件
比如sqrt()函数的说明将指出应使用cmath头文件
千万不要混淆函数原型和函数定义
可以看出原型只描述函数接口也就是说它描述的是发送给函数的信息和返回的信息而定义中包含了函数的代码
比如计算平方根的代码C和C将库函数的这两项特性原型和定义分开了库文件中包含了函数的编译代码而头文件中则包含了原型
在首次使用函数之前要提供它的原型
通常的做法是把原型放到 main()函数定义的前面前面我们使用头文件也可以把函数原型放到main()函数的前面我们举个例子下面的程序通过包含cmath文件来提供该函数的原型
#include iostream
#include cmathint main(void)
{using namespace std;double in;double out;cout This is a tool for measuring the side length of a square endl;cout Enter the area of the square;cin in;out sqrt(in);cout Its side length is out . endl;return 0;
}
这是一个计算正方形边长的工具下面是这个程序的输出
This is a tool for measuring the side length of a square
Enter the area of the square16
Its side length is 4. 如果你使用的是很老的编译器那么使用头文件方法应该使用
#include math.h
有些函数需要多项信息
这些函数使用多个参数参数间用逗号分开
例如数学函数pow()接受两个参数返回值为以第一个参数为底第二个参数为指数的幂
该函数的原型如下
double pow(double, double);
比如要计算3的3次方可以这么使用pow()函数
c1 pow(3.0, 3.0);
有一些函数不接受任何参数比如rand()函数它的原型如下
int rand(void);
其中void表示它不接受任何参数返回一个随机整数
可以这么使用这个函数
c1 rand(void)
或者
c1 rand()
省略void或者不省略效果是一样的
实际上main(void)函数也是不接受任何参数的前面我们说过这里不过多赘述
标准C库提供了140多个预定义的函数。如果其中的函数能满足要求那么就可以使用它们。但用户经常需要编写自己的函数尤其是在设计类的时候。无论如何设计自己的函数很有意思下面来介绍一下
其实前面已经使用过好几个我们自己定义的函数它们就是main()每个C程序都必须有一个main()函数用户必须对它进行定义
假设需要添加另一个用户定义的函数。和库函数一样也可以通过函数名来调用用户定义的函数。对于库函数在使用之前必须提供其原型通常把原型放到main()定义之前。
但现在你必须提供新函数的源代码。最简单的方法是将代码放在main()的后面我们来举个例子
#include iostream
int conversion(double);int main(void)
{using namespace std;double length;cout This is a meter to centimeter conversion tool. endl;cout Enter the length calculated using meters. endl;cin length;conversion(length);return 0;
}int conversion(double accept)
{using namespace std;cout Converted to centimeters is accept * 100 endl;
}
但是这种方法编译器会抛出编译警告
firstfunction.cpp:22:1: warning: non-void function does not return a value [-Wreturn-type]
}
^
1 warning generated.
意思是又返回值的函数没有检测到返回值虽然它可以正常运行但我们最好改进一下
#include iostream
int conversion(double);int main(void)
{using namespace std;double length;double out;cout This is a meter to centimeter conversion tool. endl;cout Enter the length calculated using meters. endl;cin length;out conversion(length);cout Converted to centimeters is out . endl;return 0;
}int conversion(double accept)
{return accept * 100;
}
我们可以把运算结果作为返回值然后赋值给变量out这样就不会有编译警告了
下面是这段程序的示例输出
This is a meter to centimeter conversion tool.
Enter the length calculated using meters.
1
Converted to centimeters is 100.
下一篇我们来细致讲解函数 结语
作者会经常帮助有问题的小伙伴解决问题
如果你有问题可以直接到评论区指出作者会在看到后到24小时内给予答复
如果本文有任何问题欢迎在评论去指出如果喜欢这篇文章希望能点赞评论关注
如果你们身边有像你提起过这个领域的或者希望可以和ta一起进步的把这篇文章分享给ta吧
4652字9个父项1个子项 快捷翻页
cout还是printfC教程 - How to C系列专栏第4篇
C教程 - How to C系列专栏第3篇
C教程 - How to C系列专栏第2篇
C教程 - How to C系列专栏第1篇
C教程 - How to C系列专栏第0篇 本文参考文章书籍
参考文章
C中cin的详细用法_cin函数_大大大大大大旭的博客-CSDN博客
https://www.cnblogs.com/suozhiyuan/p/11932985.html
C 类 对象 | 菜鸟教程
pow函数的原型 以及使用pow函数需注意的坑_pow 原型_SSS迪的博客-CSDN博客
C的POW()函数用法介绍也即幂函数的使用方法_c pow 负数_Howe Tan浪漫的季节的博客-CSDN博客
sqrt()函数的详解和用法_辉小歌的博客-CSDN博客
文心一言
参考书籍
C Primer Plus