输入和输出
原文: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()函数向用户显示输出,并从用户那里获取输入。
我们还了解了一些用于显示输出和获取用户输入的其他功能。