get() 是 istream 类的成员函数。

int get();

此函数从输入流中读入一个字符,返回值就是该字符的 ASCII 码。如果碰到输入的末尾,则返回值为 EOF。

EOF 是 End of File 的缩写。istream 类中从输入流(包括文件)中读取数据的成员函数,在把输入数据都读取完后再进行读取,就会返回 EOF。EOF 是在 iostream 类中定义的一个整型常量,值为 -1。

get() 函数不会跳过空格、制表符、回车等特殊字符,所有的字符都能被读入。例如下面的程序:

#include <iostream>
using namespace std;
int main()
{int c;while ((c = cin.get()) != EOF)cout.put(c);return 0;
}

程序运行情况如下:

http://www.baidu.com↙
http://www.baidu.com
C++ Tutorial↙
C++ Tutorial
^Z↙

↙表示回车键,^Z表示 Ctrl+Z 组合键。

程序中的变量 c 应为 int 类型,而不能是 char 类型。在输入流中碰到 ASCII 码等于 0xFF 的字符时,cin.get() 返回 0xFF,0xFF 赋值给 c,此时如果 c 是 char 类型的,那么其值就是 -1(因为符号位为 1 代表负数),即等于 EOF,于是程序就错误地认为输入已经结束。

而在 c 为 int 类型的情况下,将 0xFF 赋值给 c,c 的值是 255(因为符号位为 0,是正数),而非 -1,即除非读到输入末尾,c 的值都不可能是 -1。

要将文本文件 test.txt 中的全部内容原样显示出来,程序如下:

#include <iostream>
using namespace std;
int main()
{int c;freopen("test.txt", "r", stdin);  //将标准输入重定向为 test.txtwhile ((c = cin.get()) != EOF)cout.put(c);return 0;
}

C++ 读取单个字符相关推荐

  1. java中读取单个字符_如何使用Java中的Scanner类读取单个字符?

    从Java 1.5开始引入Scanner类.此类接受File,InputStream,Path和String对象,使用正则表达式逐个令牌读取所有原始数据类型和String(从给定的源)令牌.默认情况下 ...

  2. python输入单个字符_关于输入:Python从用户读取单个字符

    有没有从用户输入中读取单个字符的方法?例如,他们在终端按下一个键,然后返回(类似于getch()).我知道Windows中有一个函数,但是我想要一个跨平台的函数. 在Windows上,我遇到了和这个问 ...

  3. Java读取单个字符

    前言 写算法题的时候可能会出现读取单个字符的需求. 对于c语言来说,可以用 getchar 或者是 getc(stdin) 做到. 对于java,有解决方案是这么说的.使用Scanner读取字符串之后 ...

  4. c 语言如何扫描输入的字符,如何在C中对单个字符进行扫描

    首先,避免scanf()..使用它是不值得的痛苦. 中使用空白字符.scanf()如果需要读取更多的输入,会忽略输入流中留下的任意数量的空格字符吗?考虑:#include int main(void) ...

  5. C语言字符输入回车时停止,解决C语言输入单个字符屏蔽回车符的问题

    C语言的scanf()函数在接收输入单个字符时会把上一次输入的回车符号当做这次输入的字符,造成无法正确的输入字符数据.这恐怕是初学C的童鞋门遇到的最头疼的问题了. 今天给大家提供四种解决方法供借鉴. ...

  6. 读取EXCEL数据到SAP函数重新封装为ZALSM_EXCEL_TO_INTERNAL_TABLE(解决单元格至多上传50字符 单次至多上传9999行 只能读取单个SHEET)

    => 前言 由于网络上的版本各式各样,而且很多难以直接激活:所有博主准备出一个详细的版本 1. 缺陷 标准 ALSM_EXCEL_TO_INTERNAL_TABLE 单元格至多上传50长度字符并 ...

  7. 【C 语言】文件操作 ( 按照单个字符的方式读写文件 | fgetc 函数 | fputc 函数 )

    文章目录 一.文件名路径设置 二.文件打开方式 三.fputc 函数 | 按照字符方式写文件 1.fputc 函数 2.代码示例 四.fgetc 函数 | 按照字符方式读文件 1.fgetc 函数 2 ...

  8. java写入单个字符_将2个字符写入单个Java char

    java写入单个字符 这是创建超低延迟的Chronicle FIX-Engine时使用的另一个好技巧. 在从字节流中读取数据时,如果可能的话,将数据存储在char而不是将其读取到String效率更高. ...

  9. c#读取指定字符后的字符_在C#中读取字符的不同方法

    c#读取指定字符后的字符 As we know that, Console.ReadLine() is used for input in C#, it actually reads a string ...

最新文章

  1. 再见,CentOS!
  2. [BZOJ5303] [HAOI2018] 反色游戏
  3. 东软睿云用户认证_【硬件资讯】尘埃落定!11代酷睿规格曝光!i7、i9难分差距,退回8核16线程!...
  4. 微课|中学生可以这样学Python(例3.2):今天是今年的第几天
  5. 如何查看android设备是否支持Widevine DRM
  6. python ssim代码
  7. 南京大学俞扬博士:强化学习前沿(下)
  8. android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@
  9. shopex使用经验
  10. 如何获取Windows 10的锁屏壁纸
  11. Android深入浅出系列课程---Lesson13 LLY110529_虚拟机概述,JIT概述
  12. C++输入和输出:控制台I/O(键盘和屏幕)及文件I/O详细笔记
  13. LC365. 水壶问题
  14. 你今天Git了吗?上传资源上Github最新教程!
  15. HDU 6461 hzy 和zsl 的生存挑战(博弈)
  16. python二次开发ug_Siemens NX (UG)中对于Python第三方包(函数库)的设置方法
  17. 图片轮播的实现(详解两种方法)
  18. 在unity中添加Newtonsoft.Json
  19. 计算机导论黄国兴电子版第三版,计算机导论黄国兴
  20. css3恐龙蛋孵化动画代码

热门文章

  1. linux上安装python2.6.9_在Linux CentOS 6.6上安装Python 2.7.9
  2. iframe 页面富文本框数据怎么保存_文字太多PPT怎么做都丑?估计是没注意这些细节!...
  3. php mvc教程 文档,PHP培训教程教你快速打造PHP MVC框架[PHP基础教程]
  4. 360浏览器怎么查看保存的密码
  5. Windows平台摄像头或屏幕RTMP推送:OBS VS SmartPublisher
  6. Vue-cli 项目打包布署(简单清晰)
  7. linux 上下文切换监控,[Linux] 查看进程的上下文切换pidstat
  8. 计算机应用常用的30个函数,Excel中常用函数的使用
  9. python捕捉线程错误_Pythonrequests多线程抓取出现HTTPConnectionPoolMaxretiresexceeded异常...
  10. 在python语言中语句的续行符是_Python程序设计课后习题答案-第二单元(2页)-原创力文档...