C语言————基本常用函数介绍

一、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/

好了,小博就说这么多了,拜拜,欢迎留言评论!!