1

十、输入与输出

 2 years ago
source link: https://www.techstack.tech/post/%E5%8D%81%E3%80%81%E8%BE%93%E5%85%A5%E4%B8%8E%E8%BE%93%E5%87%BA/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

十、输入与输出

发表于2021-12-24|更新于2021-12-24|C语言入门手册
字数总计:862|阅读时长:3分钟|阅读量:1|评论数:0

C 是一门小型语言,并且 C 的“内核”并不包含任何输入/输出(I/O)功能。

当然,这并不是 C 所独有的。语言内核与 I/O 无关是很常见的。

在 C 中,输入/输出由 C 的标准库通过一组定义在 stdio.h 头文件中的函数向我们提供。

你可以在 C 文件顶部使用:

#include <stdio.h>

导入这个库。

这个库给我们提供了很多其它的函数:

  • printf()
  • scanf()
  • sscanf()
  • fgets()
  • fprintf()

在描述这个函数干啥之前,我想先花一分钟讲一下 I/O 流

在 C 中,我们有三种类型的 I/O 流:

  • stdin(标准输入)
  • stdout(标准输出)
  • stderr(标准错误)

借助 I/O 函数,我们始终可以和流一起工作。流是一个高级接口,可以代表一个设备或文件。从 C 的角度来看,我们在从文件读取和命令行读取没有任何差异:不论如何,它都是一个 I/O 流。

那是我们需要牢记的一件事情。

某些函数是为与特定的流一起工作而设计的,就像 printf()一样,我们用它来将字符串打印到 stdout。使用它更加通用的版本 fprintf() 时,我们可以指定我们要写到的流。

由于我最开始谈论的是 printf(),咱们现在就介绍它吧。

printf() 是你在学习 C 编程时最先使用的函数之一。

在它最简单的使用形式中,你给它传递一个字符串字面量:

printf("hey!");

并且程序会将该字符串的内容打印到屏幕上。

你可以打印一个变量的值。但是这有点棘手,因为你需要添加一个特殊的字符,一个占位符,它会根据变量的类型变化。例如,我们为有符号十进制整数使用 %d

int age = 37;

printf("My age is %d", age);

通过使用逗号,我现在可以打印多个变量:

int age_yesterday = 37;
int age_today = 36;

printf("Yesterday my age was %d and today is %d", age_yesterday, age_today);

还有其它像 %d 一样的格式指示符:

  • %c 用于字符
  • %s 用于字符串
  • %f 用于浮点数
  • %p 用于指针

还有很多。

我们可以在 printf() 中使用转义字符,比如 \n 可以用来让输出创建一个新行。

scanf()

printf() 被用作输出函数。我现在想介绍一个输入函数,这样我们就能完成所有的 I/O 操作:scanf()

这个函数被用来从用户运行的程序,从命令行获取一个值。

我们必须先定义一个变量,它将被用来存放我们从输入中获取的值:

int age;

然后我们调用 scanf(),传入两个参数:变量的格式(类型),和变量的地址:

scanf("%d", &age);

如果我们想在输入时获取一个字符串,还记得字符串名是一个指向第一个字符的指针,所以你不需要在它前面加上 &

char name[20];
scanf("%s", name);

这里是一个小程序,它同时使用了 printf()scanf()

#include <stdio.h>

int main(void) {
char name[20];
printf("Enter your name: ");
scanf("%s", name);
printf("you entered %s", name);
}

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK