一、main函数
main 函数是程序的⼊⼝,main 函数也被叫做:主函数。 main 前⾯的 int 表⽰ main 函数执⾏结束的时候返回⼀个整型类型的值。所以在 main 函数的最后写 return 0; 正好前后呼应。
• main函数是程序的⼊⼝
• main函数有且仅有⼀个
• 即使⼀个项⽬中有多个.c⽂件,但是只能有⼀个main函数(因为程序的⼊⼝只能有⼀个)
二、scanf
1.scanf()函数读取用户的键盘输入
scanf("%d",&i);
其中,scanf()的第一个参数%d(占位符),表示输入的是一个整数;第二个参数&i,表示将用户输入的整数存入变量i中。
注意:变量前面必须加上&运算符(指针变量除外),scanf()传递的不是值,而是地址,即变量i的地址指向用户输入的值。
2.scanf()函数可一次输入多个数据
scanf("%d%d%f",&i,&j,&k);
scanf()处理数值占位符时,会自动过滤空白字符,包括空格、制表符、换行符等。所以,输入三个数时,有空格或无空格不影响。但是,scanf()处理所有占位符时,不会自动过滤起首的空白字符,包括空格、制表符、换行符,总是返回当前第一个字符,无论该字符是否为空格。
3.scanf()读取输入
#include <stdio.h>
int main()
{
int x;
float y;
//输入“134.31456#02”
scanf("%d",&x);
printf("%d\n",x); //输出为:134
scanf("%f",&y);
printf("%f",y); //输出为:0.31456
return 0;
}
scanf()读取用户输入时,%d占位符会读到134停下来,因为后面的不属于整数的有效字符。第二次scanf()读取,就会从上次停止解读的地方继续往下读。%f占位符会读取到.31456停下来,后面的#不属于浮点数的有效字符。
4.scanf()返回值
scanf()一般有返回值,如果没有读取任何项,或者匹配失败,会返回0;如果在读取之前,发生了读取错误或者读取到文件结尾,则返回EOF,即输出-1。如:本来需输入三个数据,可只输入两个数据后,按ctrl+z提前结束输入,在VS环境中,需要按三次ctrl+z。
5.占位符
在所有占位符中,除了%c外,都会自动忽略起首的空白字符,%c总是返回当前第一个字符,无论该字符是否为空格。如果要强制跳过字符前的空白字符可以在%c前加上一个空格,表示跳过零个和多个空白字符。
scanf(" %d",&a);
占位符%s,输入时不能简单等同于字符串,它是从当前第一个非空白字符开始读起,直到遇到空白字符(空格、换行符、制表符等)为止,其不包含空白字符,除非多个%s一起用。另外,字符串末尾隐藏一个空字符‘\0’。
scanf()使用%s读取字符数组时,可能会超过数组长度,可通过%[m]s来指定读取的最大长度,其中[m]是一个整数,超过长度的字符将会被丢弃。
6.赋值忽略符
#include <stdio.h>
int main()
{
int year = 0;
int month = 0;
int day = 0;
scanf("%d-%d-%d", &year, &month, &day);
printf("%d %d %d\n", year, month, day);
return 0;
}
上面实例中,用户必须输入2025-2-26,才能读取正确。如输入2026/2/26,就会读取错误。为了避免这种情况,可以用赋值忽略符,即%*c,这样*对应的占位符就不会有返回值。
三、printf
1.printf()输出
printf()的作用是将文本输入到屏幕上。
printf("Hello World\n");
后面加一个换行符\n,光标会移到下一行开头。
2.占位符
printf("There are %d people\n",3);
printf("I'm %s\n", "liming ");
printf()输出,占位符%d和%s分别可以用整数和字符串代替。
printf("%s say it is %d 0'clock","liming",3);
输出文本中也可以有多个占位符。
3.限制输出宽度
printf("%5d\n", 123); //输出为" 123"
printf("%-5d\n", 123); //输出为"123 "
%5d表示该占位符宽度至少5位,不满5位,对应值前面加空格,默认是右对齐。%-5d为左对齐。
printf("%12f\n", 123.456); //输出为" 123.456000"
%12f会精确到小数点后六位,包含小数点,总共要占据12位。
printf("%+d\n", 12); //输出为"+12"
printf("%+d\n", -12); //输出为"-12"
%+d可以确保输出的数值,总是带有正负号。
printf("%.2f", 0.5); //输出为"0.50"
%.2f可限定小数点后保留2位小数。
printf("%6.2f", 0.5); //输出为" 0.50"
%6.2f可限定总长度是6位(包含小数点),小数点后保留2位。也可以用%*.*f,两个星号可通过6和2两个参数传入。
printf("%.5s\n", "hello world"); //输出"hello"
%.5s表示只输出字符串的前5个字符。
四、库函数
为了不再重复实现常⻅的代码,让程序员提升开发效率,C语⾔标准规定了⼀组函数,这些函数再由不同的编译器⼚商根据标准进⾏实现,提供给程序员使⽤。这些函数组成了⼀个函数库,被称为标准库,这些函数也被称为库函数。在这个基础上⼀些编译器⼚商可能会额外扩展提供部分函(这些函数其他编译器不⼀定⽀持)。
所以库函数的使⽤,要包含对应的头⽂件,如:scanf()和printf()包含对应的头文件为<stdio.h>。
库函数⽐较多,可参考链接:cplusplus.com/reference/clibrary/https://cplusplus.com/reference/clibrary/
好了,小博就说这么多了,拜拜,欢迎留言评论!!