C:

1.scanf( )

存在于<stdio.h>(C++为<cstdio>)中,根据stdin读取数据并根据参数格式进行赋值,以第一个非空格字符(空格字符如:空格,制符表,换行符)为起点。一般键盘输入时,返回成功赋值的参数的个数如:0(失败),1(成功赋值一个),2,...

开始&结束标志:  常见的数值赋值、单个字符赋值时,以第一个非空格字符为开始标志,以空格字符为结束标志。但是以换行符键盘缓冲区结束标志(整数、字符、字符串都会出现下图情况)。所以使用"%s"进行字符串赋值时,无法赋值空格字符。

 

                  附,格式说明:

常见的格式化单元符
i

整数

d/u 十进制整数(u是无符号数)
o 八进制整数
x 十六进制整数
f

浮点数(似乎是所有进制的,如16进制浮点数前面加 '0x')

e e指数形式的浮点数
g g自动选择合适的类型
c 字符
s 字符串
p 指针地址
常见的几种 格式&类型
%hd、%hu short int、unsigned short int

%d、%u

int、unsigned int
%ld、%lu long int、unsigned long int
%lld、%llu long long int、unsigned long long int、
%f float
%lf double
%Lf long double
%c char
%s char *  /  char[ ]
   

2.getchar( )

存在于<stdio.h>中,返回读取的字符的ASCII码,返回类型为int。(一个字符一个字符地读取)

一般情况下getchar( )会开启输入(如:键盘)缓冲区,并且该缓冲区以换行符为结束。但是此时getchar( )只读取了一个字符,导致换行符还存在于缓冲区内。

第一次输入“A”+“回车”;//可以明显地看到b=“回车”;

第二次输入“YYY”+“回车”

第三次输入“EEE”+“回车”

综上,无delim,不丢弃任何字符,一次读一个字符,包括空格符、制表符、换行符。

如图:(第16行while的条件用来去除缓冲区中的“换行符”)

3.gets(char * str)

存在于<stdio.h>中,原型为char * gets ( char * str ),返回str。

以换行符为结束标志,将所有字符(包括空格)赋值给字符数组,并丢弃delim

目前来看只能进行 字符数组 的赋值,如图

C++:

        4.std::getline(istream& is, string& str, char delim)

           原型:

  • istream& getline (istream& is, string& str, char delim);
  • istream& getline (istream&& is, string& str, char delim);
  • istream& getline (istream& is, string& str);
  • istream& getline (istream&& is, string& str);

存在于<string>中,可以认为是gets( )的string版,返回str,并丢弃delim。

输入流必须指定,默认情况下终结符为“换行符”(“\n”)。

5.std::istream::getline(char* s, streamsize n, char delim)

存在于<istream> <iostream>中,可以认为是gets( ),返回istream该对象的指针,并丢弃delim。

原型:

  • istream& getline (char* s, streamsize n );
  • istream& getline (char* s, streamsize n, char delim );

6.std::istream::get()

存在于<istream> <iostream>中,可以认为是gets( ),因为重载函数比较多。返回istream该对象的指针,不丢弃delim。

原型

    • int get();
    • istream& get (char& c);
    • istream& get (char* s, streamsize n);
    • istream& get (char* s, streamsize n, char delim);
    • istream& get (streambuf& sb);
    • istream& get (streambuf& sb, char delim);

最新文章

  1. Disabling default console handler in Java Logger by codes
  2. python基础——面向对象编程
  3. js 获取时间差
  4. 感知开源的力量-APICloud Studio开源技术分享会
  5. Flask-在浏览器中直接显示文本文件中的内容
  6. django - transaction
  7. 44个JAVA代码质量管理工具(转)
  8. JavaEE XML StAX创建
  9. 简单的Android之apk包反编译方法
  10. 设置iPhone网页固定到桌面上的图标
  11. appium python andiroid自动化文档整理笔记
  12. Redis随笔(一)Linux Redis 搭建
  13. 蚂蚁爬杆问题 UVA 10881
  14. 数组属性的习题、Arrays工具、二维数组
  15. HBase 是列式存储数据库吗
  16. ubuntu apt 安装 mpv
  17. UE4 材质编辑
  18. 阿里云CentOS下nodejs安装
  19. C# Newtonsoft.Json JsonSerializerSettings 全局序列化设置
  20. 大数据系列之并行计算引擎Spark介绍

热门文章

  1. Java集合框架中底层文档的List与Set
  2. 创建虚拟机,安装操作系统,xshell6远程链接
  3. Java线程之ThreadLocal
  4. [BZOJ1123]:[POI2008]BLO(塔尖)
  5. python中的定时器threading.Timer
  6. SSRF和XSS-filter_var(), preg_match() 和 parse_url()绕过学习
  7. 实验四《Android程序设计》实验报告封面
  8. Xcode使用介绍之一:Xcode简介+创建App应用
  9. react 的定义组件(了解)
  10. Mysql中两个select语句的连接