scanf中%c前加不加空格的区别

%c前加空格可以让scanf跳过空白字符(如空格、制表符、换行符等),直接读取非空白字符。如果不加空格就会读取空白字符。

可以用两段测试客官有无慧根的程序来说明这个问题,测试代码如下:

cpp 复制代码
#include <stdio.h>
int main() {
    char ch;
    scanf("%c", &ch); //%c前没空格
    printf("你输入的字符是: %c\n", ch);
    return 0;
}

此时即便你心里想得都是美女(用字母s表示),但只要你之前曾有一念空灵,你也能遁入一片虚空,与佛结缘。

如果在%c前面加上一个空格,你又有怎样的命运呢?代码如下:

cpp 复制代码
#include <stdio.h>
int main() {
    char ch;
    scanf(" %c", &ch); //%c前有空格
    printf("你输入的字符是: %c\n", ch);
    return 0;
}

此时即便你内心一片空灵,只要有那么一点点杂念,你终无法摆脱美人的牵绊。

这充分地说明了一个道理:色即是空,空即是色。

需要说明的是,只有%c是可以读取空白字符的,所以也只有它需要前面加空格以跳过空白符。其他的像%d、%s都是能自动跳过空白符的。

相关推荐
共享家95276 分钟前
QT-系统(多线程)
开发语言·数据库·qt
郝学胜-神的一滴34 分钟前
Effective Python 第52条:用subprocess模块优雅管理子进程
linux·服务器·开发语言·python
星轨初途38 分钟前
数据结构二叉树之链式结构(3)(下)
c语言·网络·数据结构·经验分享·笔记·后端
valan liya1 小时前
C++list
开发语言·数据结构·c++·list
Le1Yu1 小时前
订单取消功能(退款功能、策略模式、定时任务)
开发语言
章鱼哥7301 小时前
Java 策略模式 + 聚合对象:实现多模块的统计与聚合,快速扩展的实战
java·开发语言·策略模式
fashion 道格1 小时前
深入理解数据结构:单链表的 C 语言实现与应用
c语言·数据结构
是店小二呀1 小时前
openGauss进阶:使用DBeaver可视化管理与实战
开发语言·人工智能·yolo
万粉变现经纪人1 小时前
如何解决 pip install 编译报错 ‘cl.exe’ not found(缺少 VS C++ 工具集)问题
开发语言·c++·人工智能·python·pycharm·bug·pip
U***e631 小时前
JavaScript数据分析
开发语言·javascript·数据分析