我的问题基于这个简单的代码:

#include

using namespace std;

int main() {

string buf;

while (cin >> buf && !buf.empty()) {

cout << "input is " << buf << "\n";

}

return 0;

}

操作符>> cin(它是basic_istream类型的对象)读取并丢弃任何前导空格(例如空格,换行符,制表符).然后运算符>>读取字符直到遇到下一个空白字符.操作符最终返回流本身,cin.

如果没有设置至少一个eost,eof,fail或bad,就不可能输入一个空字符串?因此,流与运算符bool转换为false.我认为!buf.empty()在这里是多余的,但这是一个好习惯.有没有办法让cin的iostate保持良好状态并将字符串留空?

用法示例:

1.输入您选择的单词

2.按回车键

3.按Ctrl d(UNIX上的EOF)或Ctrl d(Windows上的EOF)

谢谢

c语言cin取字符串,c – 是否可以从cin中读取一个空字符串,并且仍然可以从cin.good()获得真实的字符串?...相关推荐

  1. python中定义一个空的字符串_04python—15种字符串操作

    <python小白入门系列教程> 专栏 • 第04篇 字符串是 字符的序列 .字符串基本上就是一组单词.我几乎可以保证你在每个Python程序中都要用到字符串,所以请特别留心下面这部分的内 ...

  2. java object取数据_java使用ObjectInputStream从文件中读取对象

    import java.io.EOFException; import java.io.FileInputStream; import java.io.FileNotFoundException; i ...

  3. python 取字符串的最后一位_python中获得一个字符串最后出现位置 | 学步园

    def lastpos(findstr,mystr): #gp.AddMessage("查询=======:"+findstr+","+mystr) num=l ...

  4. c语言如何给阻塞函数加超时,在代码中写一个延时而不阻塞的函数方法,给大家的参考 - 单片机 - 电子工程世界-论坛 - 手机版...

    2017-11-10 17:09 鉴于有些人对我以上两个函数不了解的,我将他们详细写出来,不然又要被某些人喷 对于以上的用法,当你有要延时后才去执行的内容时,如果使用delay()函数,会造成系统阻塞 ...

  5. c语言gets,getc,C++_C语言的getc()函数和gets()函数的使用对比,C语言getc()函数:从流中读取字 - phpStudy...

    C语言的getc()函数和gets()函数的使用对比 C语言getc()函数:从流中读取字符头文件: #include 函数getc()用于从流中取字符,其原型如下: int getc(FILE *s ...

  6. C语言编程>第二十周 ② 下列给定程序中,函数fun的功能是:求出数组中最大数和次最大数,并把最大数和b[0]中的数对调、次最大数和b[1]中的数对调。

    例题:下列给定程序中,函数fun的功能是:求出数组中最大数和次最大数,并把最大数和b[0]中的数对调.次最大数和b[1]中的数对调. 注意:不要改动main函数,不能增行或删行,也不能更改程序的结构. ...

  7. 如何用c语言从txt文件中读取数据

    用C语言从txt文件中读取数据,可以使用C标准库文件自带的文件接口函数进行操作. 一.打开文件: FILE *fopen(const char *filename, const char *mode) ...

  8. php中读取文件内容的几种方法。(file_get_contents:将文件内容读入一个字符串)...

    php中读取文件内容的几种方法.(file_get_contents:将文件内容读入一个字符串) 一.总结 php中读取文件内容的几种方法(file_get_contents:将文件内容读入一个字符串 ...

  9. c语言怎么取字符串首字母,C语言 字符串首字母转换成大写简单实例

    C语言 字符串首字母转换成大写简单实例 C语言 字符串首字母转换成大写简单实例 举例: 输入:this is a book 返回:This Is A Book #include #include #i ...

最新文章

  1. mac 键盘按键符号讲解
  2. android 如何监听应用前后台切换
  3. android 申请usb权限,USB 权限申请流程
  4. JDBC03 Statement接口
  5. win10安装nessus8.10
  6. win10开启cpu虚拟化
  7. 魔客吧php登录界面模板,精仿魔客吧网站模板discuz模板_带VIP购买等多个插件
  8. 免费中通快递对接快递鸟单号查询接口对接方法
  9. 提升思考力的8种日常训练法
  10. 静态资源文件无法加载导致jsp页面渲染不成功问题
  11. Unity3D在windows10下小问题解决
  12. 医学应用计算机答案,医学计算机应用试题及答案大全02.doc
  13. C++ string类和常用接口的实现
  14. RC并联电路常见应用总结
  15. 删除指定位置的元素(数组)
  16. 电路中的基础元件-无源晶振详谈
  17. linux拆分分区,linux磁盘分割
  18. 2020年的奋斗目标
  19. 思博伦Spirent Python脚本自动化测试
  20. linux改熄屏时间,Android亮屏、熄屏控制

热门文章

  1. oracle数据库渐变色,CSS3背景颜色渐变(gradients),适用于微信小程序
  2. ubuntu怎么清空回收站?(权限不够)
  3. pycharm 配置码云(gitee)教程,如何将已有项目push到码云?
  4. 初学__Python——Python中文支持、Python计算器
  5. Filebeat配置module采集nginx日志
  6. Springboot中使用Google 的Kaptcha工具实现验证码校验
  7. stm32串口传输数据第一个数据被吞_stm32串口发送数据复位 第一个数据丢失
  8. 多媒体个人计算机能处理什么,多媒体计算机可以处理的信息类型有哪些
  9. qpid java_AMQP与QPID简介
  10. mysql 1270_MySQL_详细基本操作命令