目录

标准文件

getchar() & putchar() 函数

gets() & puts() 函数

scanf() 和 printf() 函数


当我们提到输入时,这意味着要向程序填充一些数据。输入可以是以文件的形式或从命令行中进行。C 语言提供了一系列内置的函数来读取给定的输入,并根据需要填充到程序中。

当我们提到输出时,这意味着要在屏幕上、打印机上或任意文件中显示一些数据。C 语言提供了一系列内置的函数来输出数据到计算机屏幕上和保存数据到文本文件或二进制文件中。

标准文件

C 语言把所有的设备都当作文件。所以设备(比如显示器)被处理的方式与文件相同。以下三个文件会在程序执行时自动打开,以便访问键盘和屏幕。

标准文件 文件指针 设备
标准输入 stdin 键盘
标准输出 stdout 屏幕
标准错误 stderr 您的屏幕

文件指针是访问文件的方式,本节将讲解如何从键盘上读取值以及如何把结果输出到屏幕上。

C 语言中的 I/O (输入/输出) 通常使用 printf() 和 scanf() 两个函数。

scanf() 函数用于从标准输入(键盘)读取并格式化, printf() 函数发送格式化输出到标准输出(屏幕)。

#include <stdio.h>      // 执行 printf() 函数需要该库
int main()
{printf("菜鸟教程");  //显示引号中的内容return 0;
}

编译以上程序,输出结果为:

菜鸟教程

实例解析:

  • 所有的 C 语言程序都需要包含 main() 函数。 代码从 main() 函数开始执行。
  • printf() 用于格式化输出到屏幕。printf() 函数在 "stdio.h" 头文件中声明。
  • stdio.h 是一个头文件 (标准输入输出头文件) and #include 是一个预处理命令,用来引入头文件。 当编译器遇到 printf() 函数时,如果没有找到 stdio.h 头文件,会发生编译错误。
  • return 0; 语句用于表示退出程序。

%d 格式化输出整数

#include <stdio.h>
int main()
{int testInteger = 5;printf("Number = %d", testInteger);return 0;
}

编译以上程序,输出结果为:

Number = 5

在 printf() 函数的引号中使用 "%d" (整型) 来匹配整型变量 testInteger 并输出到屏幕。

%f 格式化输出浮点型数据

#include <stdio.h>
int main()
{float f;printf("Enter a number: ");// %f 匹配浮点型数据scanf("%f",&f);printf("Value = %f", f);return 0;
}

getchar() & putchar() 函数

        int getchar(void) 函数从屏幕读取下一个可用的字符,并把它返回为一个整数。这个函数在同一个时间内只会读取一个单一的字符。可以在循环内使用这个方法,以便从屏幕上读取多个字符。

        int putchar(int c) 函数把字符输出到屏幕上,并返回相同的字符。这个函数在同一个时间内只会输出一个单一的字符。可以在循环内使用这个方法,以便在屏幕上输出多个字符。

请看下面的实例:

#include <stdio.h>int main( )
{int c;printf( "Enter a value :");c = getchar( );printf( "\nYou entered: ");putchar( c );printf( "\n");return 0;
}

当上面的代码被编译和执行时,它会等待您输入一些文本,当输入一个文本并按下回车键时,程序会继续并只会读取一个单一的字符,显示如下:

$./a.out
Enter a value :runoobYou entered: r

gets() & puts() 函数

        char *gets(char *s) 函数从 stdin 读取一行到 s 所指向的缓冲区,直到一个终止符或 EOF。

        int puts(const char *s) 函数把字符串 s 和一个尾随的换行符写入到 stdout

#include <stdio.h>int main( )
{char str[100];printf( "Enter a value :");gets( str );printf( "\nYou entered: ");puts( str );return 0;
}

当上面的代码被编译和执行时,它会等待您输入一些文本,当输入一个文本并按下回车键时,程序会继续并读取一整行直到该行结束,显示如下:

$./a.out
Enter a value :runoobYou entered: runoob

scanf() 和 printf() 函数

        int scanf(const char *format, ...) 函数从标准输入流 stdin 读取输入,并根据提供的 format 来浏览输入。

        int printf(const char *format, ...) 函数把输出写入到标准输出流 stdout ,并根据提供的格式产生输出。

        format 可以是一个简单的常量字符串,但是可以分别指定 %s、%d、%c、%f 等来输出或读取字符串、整数、字符或浮点数。还有许多其他可用的格式选项,可以根据需要使用。如需了解完整的细节,可以查看这些函数的参考手册。现在让我们通过下面这个简单的实例来加深理解:

#include <stdio.h>
int main( ) {char str[100];int i;printf( "Enter a value :");scanf("%s %d", str, &i);printf( "\nYou entered: %s %d ", str, i);printf("\n");return 0;

当上面的代码被编译和执行时,它会等待输入一些文本,当输入一个文本并按下回车键时,程序会继续并读取输入,显示如下:

$./a.out
Enter a value :runoob 123You entered: runoob 123 

在这里,应当指出的是,scanf() 期待输入的格式与您给出的 %s 和 %d 相同,这意味着必须提供有效的输入,比如 "string integer",如果提供的是 "string string" 或 "integer integer",它会被认为是错误的输入。另外,在读取字符串时,只要遇到一个空格,scanf() 就会停止读取,所以 "this is test" 对 scanf() 来说是三个字符串。

C基础学习之C 输入 输出相关推荐

  1. c学习笔记 文件输入/ 输出 20210314

    与文件进行通信 文本模式和二进制模式 c提供两种访问文件的途径:二进制模式和文本模式.二进制模式下可访问文件的每个字节. MS-DOS模式下, 用\r\n表示新的一行, Ctrl+z表示文件的结束. ...

  2. java 输出赌赢unicod_JAVA基础整理-90.Java输入/输出(I/O)流

    Java流的概念:什么是输入/输出流? 在 Java 中所有数据都是使用流读写的.流是一组有序的数据序列,将数据从一个地方带到另一个地方.根据数据流向的不同,可以分为输入(Input)流和输出(Out ...

  3. c语言字符型数据怎么输入输出,C语言基础之数据类型与输入/输出

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 常用的进位制 R进制数只采用R个基本数字符号,R称为数制的基数,数制中每一固定位置对应的单位值称为权,进位原则是逢R进1 ...

  4. 使用FFMPEG——4.2.2版本实现提取视频编码解码文件,ffmpeg基础学习。

    FFMPEG基础学习 视频解码,并且输出到文件. 我通过雷霄骅的博客学习FFMPEG,在学习过程中发现"雷神"的代码由于版本的问题,很多代码已经无法在FFMPEG--4.2.2版本 ...

  5. Python3 基础学习笔记 C06【用户输入和 while 循环】

    CSDN 课程推荐:<8小时Python零基础轻松入门>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python:轻松入门& ...

  6. python 学习2 /输入/ 输出 /列表 /字典

    python基础学习第二天 输入输出 x=input("输入内容") print(x) input输出: eval :去掉字符串外围的引号,按照python的语法执行内容 a=ev ...

  7. python用户输入算式并计算_Python基础学习之计算和算式

    今天小编要跟大家分享的文章是关于Python基础学习之计算和算式.正在学习Python相关知识的小伙伴们来和小编一起看一看吧,希望能够对大家有所帮助! Python 具有执行计算的能力. 直接在 Py ...

  8. 计算机组成原理 | 第八章《计算机的外围设备》、第九章《输入/输出系统》 学习笔记

    计算机组成原理 | 第八章<计算机的外围设备>.第九章<输入/输出系统> 学习笔记 引言 & 声明 第一章 计算机系统概论 第二章 计算机中数据的表示方法 第三章 运算 ...

  9. 计算机组成原理学习笔记第8章I/O系统 8.2 输入/输出方式

    名人说:非学无以广才,非志无以成学.--诸葛亮 本篇笔记整理:Code_流苏(CSDN) Last(在此处点击使用,直达文末) First (在文末点击使用,返回文章首部) 目录 1.输入/输出方式 ...

最新文章

  1. SpringBoot中对thymeleaf的时间进行格式化显示
  2. 冲刺第六天 1.7 MON
  3. eureka客户端获取服务列表时间间隔配置
  4. Drupal 通过API动态的添加样式文件
  5. python连接access数据库odbc_对Python通过pypyodbc访问Access数据库的方法详解
  6. WPF 代码设置NotifyIcon图标
  7. 剑指offer---连续子数组的最大和
  8. Idea springboot应用,启动报错:org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputExcept
  9. wps 云服务器登录_WPS云服务使用协议
  10. 学计算机专业需要买电脑吗高中,麻麻 上大学专业需要用 | 买笔记本电脑_笔记本新闻-中关村在线...
  11. iOS面试合集,面试看这一篇就够了。
  12. elementui 时间选择框选中后限制前后31天
  13. (WSI分类)WSI分类文献小综述
  14. 好心情患者故事:节食暴食反复横跳,我确诊了重度抑郁
  15. 深入理解计算机系统bomb lab
  16. 看这里!有个奔向月薪7万的程序员专属规划!
  17. 笔记本电脑不显示WIFI列表无法连接到网络的解决办法
  18. babel7 + corejs3升级
  19. linux 无法解析配置文件,Linux无法解析域名的解决办法
  20. protect 继承_public、protect、private继承方式 C++

热门文章

  1. 大数据告诉你中老年人上网爱干什么
  2. graphpad做图如何加星号_graphpad prism 8.0 - 不用 PS,两招教你做出能发高分 SCI 的组合图!...
  3. Linux常用命令简介
  4. python机械臂坐标变换——实现机械臂末端相对移动
  5. 解读周源站内信,双重上市后知乎怎么走?
  6. HTML5 网页添加背景音乐
  7. 利用算子求解图像梯度
  8. Electron如何支持ESM模块
  9. SaToken技术分享文档
  10. 国内外机器学习、深度学习竞赛平台