在程序的运行中,我们经常会进行一些输入输出的操作,用来实现交互。为此, C语言便给出了 printf() 函数和 scanf() 函数用来实现输入和输出两个动作。

其中,printf()函数用于向控制台输出字符,scanf()函数用于读取用户的输入,下列将分别讲解这两个函数的用法。

1、printf()函数

在前面的举例中,我们会经常使用 printf() 函数输出数据,也就是类似于上面图中的输出设备,只不过它们的输出的形式不相同。它可以通过【格式控制字符】输出多个任意类型的数据。下面列举了printf()函数中常用的格式控制字符。

格式字符 意义
d 以十进制形式输出带符号整数(正数不输出符号)
o 以八进制形式输出无符号整数(不输出前缀0)
x,X 以十六进制形式输出无符号整数(不输出前缀0x)
u 以十进制形式输出无符号整数
f 以小数形式输出单、双精度实数
e,E 以指数形式输出单、双精度实数
g,G 以%f或%e中较短的输出宽度输出单、双精度实数
c 输出单个字符
s 输出字符串
p 输出指针地址
lu 32位无符号整数
llu 64位无符号整数

这个表格中列举了很多格式控制字符,使用这些格式控制符可以让printf()输出指定类型的数据,接下来通过一个具体的案例来演示这些格式控制符的使用,如案例一所示.

案例一:

#include void main() { printf("%c %c", 'H', ' '); printf("%s", "Hello, world! "); printf("%d %d %d ", 1, 2, 3); printf("%f %f ", 2.1, 2.2); }

在这个例题中 printf() 函数,通过格式控制字符

“%c”、“%s”、“%d”、“%f”,分别输出了字符、字符串、整数、浮点数。

2、scanf()函数

scanf() 函数负责从控制台上接收用户的输入,你可以理解为它就是一种输入设备,它可以灵活接收各种类型的数据,如字符串、字符、整型、浮点数等, scanf() 函数也可以通过格式控制字符控制用户的输入,其用法与 printf() 函数一样。接下来,通过一个获取字符串的案例讲解 scanf() 函数的用法,如案例二所示。

案例二:

#include void main() { char str[256]; // 字符数组保存得到的字符串 scanf("%s", str); printf("%s ", str); }

在案例二中,首先定义了一个长度为256的字符数组str,然后利用 scanf() 函数获得用户从控制台输入的字符,最后使用 printf() 函数将得到的字符串打印在控制台上。本例中用户从控制台上输入了Helloworld,并按回车符,此时scanf()函数会把回车符看做是字符串终止的标志(也称为终止符),将整个Helloworld读取到str字符数组中。

要点留心:C语言中的终止符

在使用 scanf() 函数获取用户输入的信息时,如果输入的信息中包含某个终止符,scanf()函数就认为输入结束,接下来就列举一些常见的终止符,空格、水平制表符(tab键)、回车等

接下来,以案例二为例,当程序运行后,如果输入的字符串包含空格,例如“Hello world”,尽管输入的字符串是Hello world,但是程序只打印了Hello。这是因为Hello world中包含一个空格,空格也是一个终止符,因此scanf()只能读到空格之前的内容。

C语言基础printf()和scanf()函数的更多相关文章

  1. C/C++编程笔记:C语言基础printf()和scanf()函数,大学入门知识

    在解释这两个函数之前,为了方便大家更容易理解,我们先来讲讲下面的这幅图. ​ 这个图中的例子其实很简单,我们就是把题目通过输入设备(例如键盘鼠标)传输到计算机中,然后让计算机进行运算得出结果,再然后把 ...

  2. 【转】stm32CubeMx上移植自己的printf()和scanf()函数

    要想printf()和scanf() 函数工作,我们需要把printf()和scanf() 重新定向到串口中.重定向是指用户可以自己重写C 的库函数,当连接器检查到用户编写了与C 库函数相同名字的函数 ...

  3. 【C语言】05-printf和scanf函数

    一.printf函数 这是在stdio.h中声明的一个函数,因此使用前必须加入#include <stdio.h>,使用它可以向标准输出设备(比如屏幕)输出数据 1.用法 1> pr ...

  4. C语言第五节scanf函数

    变量的内存分析 字节和地址 为了更好地理解变量在内存中的存储细节,先来认识一下内存中的"字节"和"地址". 内存以"字节为单位" 0x表示的 ...

  5. 【C语言】03-printf和scanf函数

    一.printf函数 这是在stdio.h中声明的一个函数,因此使用前必须加入#include <stdio.h>,使用它可以向标准输出设备(比如屏幕)输出数据 1.用法 1> pr ...

  6. C语言入门:05.scanf函数

    一.变量的内存分析 1.字节和地址 为了更好地理解变量在内存中的存储细节,先来认识一下内存中的“字节”和“地址”. (1)内存以“字节为单位”

  7. 在C语言中连续使用scanf()函数出现的问题

    #include<stdio.h> int main() { ],*c; printf("input string:\n"); scanf("%c" ...

  8. C语言基础知识点整理(函数/变量/常量/指针/数组/结构体)

    函数 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ...

  9. C语言基础语法之指向函数的指针

    指针是C语言的精髓,对于初学者来讲,指针是C语言语法学习中比较难的知识点,而这里面指向函数的指针更是不太容易理解. 下面给大家讲下怎样学习理解C语言中指向函数的指针及编程方法和使用例子. 注意:这是一 ...

随机推荐

  1. Spring Boot 2.3.0正式发布:优雅停机、配置文件位置通配符新特性一览

    当大潮退去,才知道谁在裸泳..关注公众号[BAT的乌托邦]开启专栏式学习,拒绝浅尝辄止.本文 https://www.yourbatman.cn 已收录,里面一并有Spring技术栈.MyBatis. ...

  2. bzoj3289Mato的文件管理

    bzoj3289Mato的文件管理 题意: 一共有n份资料,每天随机选一个区间[l,r],Mato按文件从小到大的顺序看编号在此区间内的这些资料.他先把要看的文件按编号顺序依次拷贝出来,再用排序程序给 ...

  3. jquery文件表单上传

    1. 引入jquery文件  <script src="js/jquery-2.1.1.min.js"></script> 2. 创建form表单,如下: ...

  4. proxy是什么

    普通的因特网访问是一个典型的客户机与服务器结构:用户利用计算机上的客户端程序,如浏览器发出请求,远端WWW服务器程序响应请求并提供相应的数据.而Proxy处于客户机与服务器之间,对于服务器来说,Pro ...

  5. 使用Python进行自动化测试

    目前大家对Python都有一个共识,就是他对测试非常有用,自动化测试里Python用途也很广,但是Python到底怎么进行自动化测试呢?今天就简单的向大家介绍一下怎么使用Python进行自动化测试,本 ...

  6. javascript : 写一个类似于 jquery css() 的方法

    我们知道,jquery css() 方法可以很方便的更改DOM的样式. 但从原理上,这个并不复杂,我们完全可以自己写一个. 上代码. updateDOMStyle(DOM, obj){ Object. ...

  7. 前端学习(一):Html

    进击のpython ***** 前端学习--HTML HTML全称HyperText Mackeup Language,超文本标记语言 网页的超链接,图片,音频,视频都可以超文本 标记就相当于你在本子 ...

  8. Andriod开发---《横竖屏切换时 Activity的生命周期的总结》

    横屏切换竖屏Activity的生命周期详解,下面分析一下切换时具体的生命周期: 1.新建一个Activity,并把各个生命周期打印出来 2.运行Activity,得到如下信息 onCreate--&g ...

  9. Linux企业运维人员最常用命令汇总

    本文目录 线上查询及帮助命令 文件和目录操作命令 查看文件及内容处理命令 文件压缩及解压缩命令 信息显示命令 搜索文件命令 用户管理命令 基础网络操作命令 深入网络操作命令 有关磁盘与文件系统的命令 ...

  10. cookie 和session的简单比较

    1.cookie数据存放在客户的浏览器上,session数据放在服务器上. 2.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗   考虑到安全应当使用session ...