接上文,我们使用printf
函数在控制台输出了“Hello,world”这段文字,这节课开始我们就学习一下printf
和scanf
这两个函数。其中printf
函数是用来显示一段字符到标准输出设备,一般可以对应到我们的电脑显示器上,而scanf
则是从标准输入设备获取一些输入信息,标准输入设备一般对应我们的键盘。
printf函数
上文中,我们已经使用printf
函数在终端输出了“Hello,world”字样,这节课,在这里我们着重讲解一下这个函数。
printf
函数的声明为printf format [arguments ...]
,其中format控制着我们的格式化输出格式,其本质上是一段包含了格式控制符(后文讲解基本数据类型时详细展开这个概念)的字符串。printf
会将除了格式控制符之外的文字原样输出,而格式控制符的位置则将被arguments中的参数替代。arguments可以为多个输入参数,他们都接受格式控制符的控制,其内容将被替换到格式控制符所在位置,显示到标准输出设备上。
示例代码
首先我们自行创建一个C/C++工程,输入以下代码。
#include <stdio.h>
int main(int argc, char **argv)
{
printf("hello,world\r\n");
printf("%s\r\n","hello,world");
return 0;
}
执行上述代码,我们将能在终端看到两行“hello,world”输出,代码中,被"包围起来的文字被称为字符串,在第二个打印语句中%s就是一个格式控制符,其代表这个位置将被一个字符串代替,而要用来代替这里%s的字符串就是后面的参数"hello,world"。关于更多的格式控制符相关知识,我们将在基本数据类型的章节讲解。
scanf函数
与printf
函数相对应的,scanf
函数会从标准输入设备中获取一段输入,并按照格式控制符赋值给输入参数。
scanf
的函数声明为int scanf(const char *format, ...)
其中,format与printf
函数的format函数类似,本质上是一段包含了格式控制符的字符串,其后可以包含多个输出参数,我们从标准输入设备输入的内容将会按照format参数的格式转换为我们需要的类型并赋值给输出参数。
示例代码
#include <stdio.h>
int main(int argc, char **argv)
{
char string[256] = {0};
scanf("%s",string);
printf(string);
return 0;
}
我们执行以上程序,在键盘上输入任意内容,按下回车,我们会看到终端将我们输入的内容原样打印了出来。
上述代码中,我们同样使用了%s格式控制符,这代表我们的键盘输入将会被作为一个字符串来处理。代码里,我们还定义了char string[256]
这是定义了一个可以包含256个字符的字符数组(后文数组章节详细讲解什么是数组)用来存储输入的字符串。scanf
函数将会从键盘里获取我们输入的字符,然后存储到string变量中(后文详细讲解什么是变量)。然后我们调用printf
函数将其打印出来,于是我们就从终端上看到了我们输入的文字被打印了出来。