输入和输出
原文:https://www.studytonight.com/c/c-input-output-function.php
输入表示为程序提供一些数据用于程序中,输出表示在屏幕上显示数据或将数据写入打印机或文件。
C 编程语言提供标准库函数来读取任何给定的输入,并在控制台上显示数据。
在继续使用 C 语言进行输入和输出之前,请检查以下主题,以便更好地理解这个概念:
用于标准输入和输出的功能存在于 stdio.h 头文件中。因此,为了使用这些函数,我们需要在程序中包含 stdio.h 头文件,如下所示。
#include <stdio.h>
以下是用于标准输入和输出的函数:
printf()
功能-显示输出scanf()
功能-获取输入getchar()
和putchar()
功能gets()
和puts()
功能
C 语言,电脑显示器,打印机等。输出设备被视为文件,将输出写入这些设备的过程与将输出写入文件的过程相同。
printf()
功能-显示输出
printf()
函数是 C 语言中使用最多的函数。该功能在 stdio.h 头文件中定义,用于在控制台上显示输出(标准输出)。
此功能用于打印任何变量的简单文本句子或值,该变量可以是int
、char
、float
或任何其他数据类型。
printf()
示例-打印语句
让我们使用 printf()函数打印一个简单的句子。
#include <stdio.h>
int main() {
// using printf()
printf("Welcome to Studytonight");
return 0;
}
欢迎今晚来学习
在本教程中,到目前为止,我们已经看到了许多像上面这样的代码示例。
要了解一个基本 C 语言程序的完整代码和结构,请查看 C 语言中的【Hello World Program】。
printf()
示例-打印整数
我们可以使用printf()
函数,使用%d
格式说明符打印来自变量的整数值。
例如,
#include <stdio.h>
int main() {
int x = 10;
// using printf()
printf("Value of x is: %d", x);
return 0;
}
x 的值为:10
在上面的程序中,我们使用了%d
说明符来指定将要添加到那里的值的类型。格式说明符%d
和%i
用于整数值。
printf()
示例-打印字符
%c
格式说明符用于使用printf()
功能打印字符变量值。
#include <stdio.h>
int main() {
// using printf()
char gender = 'M';
printf("John's Gender is: %c", gender);
return 0;
}
约翰的性别是:M
在printf()
函数内部,我们使用了一个单引号,它会工作得很好,因为我们在外部使用了双引号。我们也可以使用反斜杠字符像这样转义单引号\'
printf()
示例-打印浮点和双精度
在下面的代码示例中,我们使用了printf()
函数来打印一个float
和double
变量的值。
对于float
值,我们使用%f
格式说明符,对于double
值,我们使用%lf
格式说明符。
#include <stdio.h>
int main() {
// using printf()
float num1 = 15.50;
double num2 = 15556522.0978678;
printf("Value of num1 is: %f \n", num1);
printf("Value of num2 is: %lf", num2);
return 0;
}
num 1 的值为:15.500000 num 2 的值为:15556522.097868
我们在第一个printf()
语句的末尾使用了用于换行符的\n
转义序列,这样下一个printf()
语句输出就是下一行中显示的。
printf()
示例-打印多个输出
我们可以使用单个printf()
函数来显示多个变量的值。
#include <stdio.h>
int main() {
// using printf() for multiple outputs
int day = 20;
int month = 11;
int year = 2021;
printf("The date is: %d-%d-%d", day, month, year);
return 0;
}
日期:2021 年 11 月 20 日
正如您在上面的代码示例中看到的,我们可以在使用printf()
函数打印多个变量的值时也可以进行格式化。
格式规范
要使用printf()
语句打印不同数据类型的值,我们需要使用格式说明符,就像我们在上面的代码示例中使用的那样。
此外,当我们使用scanf()
功能从用户处获取输入时,我们还必须使用这些格式说明符来指定用户期望什么类型的输入。
这是所有格式说明符的列表。
数据类型 | 格式规范 |
---|---|
int |
%d 、%i |
char |
%c |
float |
%f |
double |
%lf |
short int |
%hd |
unsigned int |
%u |
long int |
%li |
long long int |
%lli |
unsigned long int |
%lu |
unsigned long long int |
%llu |
signed char |
%c |
unsigned char |
%c |
long double |
%Lf |
scanf()
功能-获取输入
当我们想要从用户那里获取输入时,我们使用scanf()
功能。当我们接受用户的输入时,我们将输入值存储到变量中。
scanf()
函数可用于从用户处获取任何数据类型输入,我们需要注意的是,存储值的变量具有相同的数据类型。
让我们看几个代码示例。
scanf()
示例-输入整数值
如果我们必须从用户输入整数值,我们必须定义一个整数变量,然后使用scanf()
函数。
#include <stdio.h>
int main() {
// using scanf()
int user_input;
printf("Please enter a number: ");
scanf("%d", &user_input);
printf("You entered: %d", user_input);
return 0;
}
请输入一个数字:7 您输入的是:7
在上面的代码示例中,我们使用了%d
格式说明符来通知scanf()
函数,用户输入将是整数类型。
我们还在变量名称前使用了&
符号,因为&user_input
指的是user_input
变量的地址,用户输入值将存储在该地址。
scanf()
示例-采用浮点值输入
就像整数值一样,我们可以接受任何不同数据类型的输入。让我们看一个浮点型值的例子。
#include <stdio.h>
int main() {
// using scanf()
float user_input;
printf("Please enter a decimal number: ");
scanf("%f", &user_input);
printf("You entered: %f", user_input);
return 0;
}
请输入一个小数:7.007 您输入的是:7.007
我们使用了%f
格式说明符并定义了一个float
类型变量。尝试将double
类型的值作为用户输入。double
的格式说明符是%lf
。
scanf()
示例-输入字符值
让我们看看如何从用户那里获取简单的字符输入。
#include <stdio.h>
int main() {
// using scanf()
char gender;
printf("Please enter your gender (M, F or O): ");
scanf("%c", &gender);
printf("Your gender: %c", gender);
return 0;
}
请输入您的性别(男、女或男):男 您的性别:男
scanf()
示例-获取多个输入
#include <stdio.h>
int main() {
// using scanf() for multiple inputs
char gender;
int age;
printf("Enter your age and then gender(M, F or O): ");
scanf("%d %c", &age, &gender);
printf("You entered: %d and %c", age, gender);
return 0;
}
输入你的年龄然后性别(M,F 或 O): 32 M 你输入的是:32 和 M
*一些额外信息
printf()
函数返回其打印的字符数,scanf()
返回其读取的字符数。
int i = printf("studytonight");
printf("Value of i is: %d", i);
研究 I 的 t 值为:12
在本程序中printf("studytonight");
将返回12
作为结果,该结果将存储在变量i
中,因为今晚学习一词有 12 个字符。
第一个printf()
语句也将在输出上打印语句今晚学习。
getchar()
& putchar()
功能
getchar()
函数从终端读取一个字符,并将其作为整数返回。这个函数一次只读取一个字符。
如果你想读一个以上的字符,你可以在循环中使用这个方法。
putchar()
功能在屏幕上显示传递给它的字符,并返回相同的字符。这个函数一次也只显示一个字符。
如果要显示多个字符,循环使用putchar()
方法。
#include <stdio.h>
void main( )
{
int c;
printf("Enter a character");
/*
Take a character as input and
store it in variable c
*/
c = getchar();
/*
display the character stored
in variable c
*/
putchar(c);
}
输入字符:今晚学习 S
当您编译上述代码时,它会要求您输入一个值。当您输入值时,它将显示您输入的值。
gets()
& puts()
功能
gets()
函数将一行从标准输入(标准输入)读入由str
指针指向的缓冲区,直到出现终止换行符或 EOF(文件结束)。
puts()
函数将字符串str
和一个尾随换行符写入标准输出。
str
是指向存储 C 字符串的字符数组的指针。(如果现在不能理解,忽略。)
#include <stdio.h>
void main()
{
/* character array of length 100 */
char str[100];
printf("Enter a string: ");
gets(str);
puts(str);
getch();
return 0;
}
输入字符串:今晚学习 今晚学习
当你编译上面的代码时,它会要求你输入一个字符串。当您输入字符串时,它将显示您输入的值。
scanf()
和gets()
的区别
这两个函数的主要区别是scanf()
遇到空格时停止读字符,但是gets()
也把空格作为字符来读。
如果使用scanf()
输入名称为今晚学习,它只会读取并存储学习,并在空格后留下部分。但是gets()
功能会完全读取。
结论
在本教程中,我们学习了 C 语言的输入和输出。通过很多代码示例,我们了解了如何使用printf()
函数和scanf()
函数向用户显示输出,并从用户那里获取输入。
我们还了解了一些用于显示输出和获取用户输入的其他功能。