scanf函数在遇到以下情况会停止一个数据的输入,!!!是一个数据哦,不是停止这个函数哦!

1、空白字符(空白字符是指空格键,tab键,回车键)

2、遇宽度结束

3、遇非法输入

因此呢,当我们在用scanf输入一个字符串的时候,空格已出现就停止了,比如

#include<cstdio>
int main()
{char string[60];scanf("%s",string);printf("%s",string);return 0;}

运行发现

可我想要的是“Hello World!”呀!解决方法:

一、[%scanset]

非“^”字符开头的scanset ,表示在读入字符串时将匹配所有在scanfset中出现的字符,遇到非scanfset中的字符时输入就结束;

#include<cstdio>
int main()
{char string[60];scanf("%[ ]",string);
//    scanf("%s",string);printf("%s",string);return 0;}

如这个代码,除了第一个空格被读入,其余均没有读入

以“^“字符开头的scanfset,表示在读入字符串时将匹配所有不在scanfset中出现的字符,遇到scanfset中的字符输入就结束。

#include<cstdio>
int main()
{char string[60];scanf("%[^\n]",string);
//    scanf("%s",string);printf("%s",string);return 0;}

二、gets()

1.scanf( )函数和gets( )函数都可用于输入字符串,但在功能上有区别。若想从键盘上输入字符串"hi hello",则应该使用__gets__函数。

2.gets可以接收空格,回车结束,gets(s)是输入一行;而scanf(%s)遇到空格、回车和Tab键都会认为输入结束,所有它不能接收空格。

scanf与空白字符相关推荐

  1. scanf/fscanf 的%[]和%n使用方法

    标准输入输出函数%[]和%n说明符的使用方法    scanf fscanf,均从第一个非空格的可显示字符开始读起!         标准输入输出函数scanf具有相对较多的转换说明符,它常常作为入门 ...

  2. C语言中Scanf语句的注意事项

    C语言中Scanf语句的注意事项共有五条. 1.Scanf遇到错误会自动停止,直接执行下一行. 2.当使用多个scanf接受数据时,可以加\n,防止回车被赋值到第二个scanf中. 如: 3.如果在s ...

  3. c语言中scanf(%7.2f,a);合法吗,scanf

    scanf (计算机语言函数) 编辑 锁定 讨论 上传视频 scanf()是C语言中的一个输入函数.与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#incl ...

  4. 一个C语言的基本教程—IO篇

    文章目录 10.与用户交互的关键--IO篇 (1).I/O是什么 (2).换个办法操作字符 #1.新的朋友--getchar和putchar #2.getchar的妙用 (3).重新认识一下--pri ...

  5. C语言fscanf/fprintf函数(格式化读写文件)的用法(%[]和%n说明符)

    文章目录 []基本用法 []特殊用法 %n用法 fscanf() 和 fprintf() 函数 简单示例 []基本用法 scanf() fscanf()函数,均从第一个非空格的可显示字符开始读起! 众 ...

  6. Regional 做题记录 (50/50)

    写在前面 博主深感自己太弱了QAQ 于是有了一个刷水的想法,Regional的题目还是有很多考查思维的题目,所以这次是乱做50道思考题,可能会顺带做一些水题,这些题的简要题解会写到这篇博文里面,希望能 ...

  7. scanf输入%s,%c遇到空白字符的一些思考

    scanf输入%s,%c遇到空白字符的一些思考 问题引入 字符%c与%s 空白符 空字符'/0'与空格的区分 scanf()输入与字符串的一些定义形式 问题引入  原题链接link 输入格式: 第一行 ...

  8. C语言 scanf(“%c“)与空白字符

    目录 问题描述: 解决方案: 举个例子: 问题描述: scanf("%c")从键盘读取数据时,将读取空白字符,并在读取空白字符后停止读取空白字符之后的内容,而为被读取的内容将会影响 ...

  9. C语言中(字符串)输入scanf()、gets()、fgets()以及getchar()、getc()函数的联系与区别

    scanf()函数的输入基于获取"单词",如果使用%s格式,字符串以第一个非空白字符开始读入,读到(但不包括)下一个空白字符(可以是空格.制表符或者换行符).使用scanf()把一 ...

  10. fprintf、printf、sprintf、fscanf、scanf、sscanf 格式化输入输出

    格式化输入输出 1.         fprintf(格式化输出数据至文件) 相关函数  printf,fscanf,vfprintf 表头文件  #include<stdio.h> 定义 ...

最新文章

  1. 简述Web程序开发流程
  2. 理解 e.clientX,e.clientY e.pageX e.pageY e.offsetX e.offsetY
  3. Jekyll报'Tag was never closed'错误
  4. Feature Pyramid Networks for Object Detection 论文笔记
  5. ambari mysql jar_从零开始安装 Ambari (3) -- 安装 Ambari
  6. OPENSUSE + zabbix源码安装,PHP出现问题?怎么解决?
  7. java复选框只会选中一个_java复选框选中
  8. 操作class属性的新API--classList
  9. 为什么从事软件开发测试?
  10. Futter基础第6篇: 实现网格布局【GridView、GridView.count、GridView.builder】
  11. 抗住百万高并发的 6 个关键技术!
  12. android 十六进制string转int,16进制string转成int
  13. 【CF585-div2:C】Swap Letters(贪心)
  14. java计算机毕业设计大数据在线考试系统在线阅卷系统及大数据统计分析(附源码、数据库)
  15. 山大计算机学院副院长屠长河,孟祥旭(山东大学教授,博士生导师)_百度百科...
  16. 测试人,测试魂,3年测遍32个城,主管的一句话给予了他源源不断的动力
  17. 《数据库与信息管理课程设计》
  18. 概率论复习大纲 | 速成
  19. Xshell实现windows上传文件到Linux系统
  20. 用python画星空图教程水粉_水粉画教程:水粉画星空教程图解

热门文章

  1. 【折腾电脑】Edge浏览器看B站视频卡顿最全解决办法合集
  2. 解决ueditor上传图片报Nginx 502 bad gateway问题
  3. 商城尺码选择效果 jquery
  4. 记录百度点击登录无响应及百度搜索显示异常
  5. mysql chunk_【MySQL参数】-innodb_buffer_pool_chunk_size
  6. 【爆笑】句经典流行俏皮语【爆笑】[
  7. 基于AM5728核心板的户外工作站可靠性和便捷性设计
  8. VIP邮箱哪个最好用?怎么申请163电子邮箱?
  9. oracle yyddd格式转换,Oracle PL/SQL开发基础(第二十二弹:类型转换函数)
  10. 重积分的计算机应用开题报告,重积分的数值计算【信息科学与技术专业】【毕业设计 文献综述 开题报告】.docx...