输入和输出

原文:https://www.studytonight.com/c/c-input-output-function.php

输入表示为程序提供一些数据用于程序中,输出表示在屏幕上显示数据或将数据写入打印机或文件。

C 编程语言提供标准库函数来读取任何给定的输入,并在控制台上显示数据。

在继续使用 C 语言进行输入和输出之前,请检查以下主题,以便更好地理解这个概念:

用于标准输入和输出的功能存在于 stdio.h 头文件中。因此,为了使用这些函数,我们需要在程序中包含 stdio.h 头文件,如下所示。

#include <stdio.h>

以下是用于标准输入和输出的函数:

  1. printf()功能-显示输出

  2. scanf()功能-获取输入

  3. getchar()putchar()功能

  4. gets()puts()功能

C 语言,电脑显示器,打印机等。输出设备被视为文件,将输出写入这些设备的过程与将输出写入文件的过程相同。

printf()功能-显示输出

printf()函数是 C 语言中使用最多的函数。该功能在 stdio.h 头文件中定义,用于在控制台上显示输出(标准输出)。

此功能用于打印任何变量的简单文本句子或值,该变量可以是intcharfloat或任何其他数据类型。

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()函数来打印一个floatdouble变量的值。

对于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()函数向用户显示输出,并从用户那里获取输入。

我们还了解了一些用于显示输出和获取用户输入的其他功能。