如何在C++中输入字符串回车换行,当输入回车时结束?

阅读(...) 评论()2014年10月 C/C++大版内专家分月排行榜第三2014年4月 C/C++大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。19:43 提问
为什么c++中输入一个整数后,再输入一个带空格的字符串会输入不了字符串
主代码段:
cout&&i&&endl&&
弹出的窗口输入
输出结果为
按赞数排序
因为cin通过空格、换行符、制表符来确定结束位置,所以只有1被附给data,如果你要将“1 2 3 4 55”作为一个字符串输出,你可以这样写:
& int i=0;
& cin.get();
//这应该懂吧,读取换行符,因为换行符在你按回车时还在输入队列中
& getline(cin,data);
//正因为cin.get()将换行符读取了,这行代码可以读取一行,否则将直接读取换行符,这样子这一行的内容都存进data字符变量中
& cout&&i&&endl&&
& return 0;
cin遇到空格或者回车就会读完,一行字符串的话用getline(cin,data)吧,先把20后边的回车读掉,然后用getline
cin遇到空格和回车就会截断,如果想读取带空格的字符串,可以先读一行在处理
其他相关推荐新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
白手起家, 积分 13, 距离下一级还需 187 积分
论坛徽章:0
请问如何实现,输入一个字符串,然后退出循环?
例如输入&quit&就退出无限的死循环。
请多给几种方法,谢谢!!
论坛徽章:1
请问如何实现,输入一个字符串,然后退出循环?
#include &stdio.h&;
int main(void)
& & char& &buf[10];
& & while (1)&&{
& && &&&if( !strncmp( fgets(buf,sizeof( buf ), stdin ),&quit& ,4) )
& & exit (0 );
白手起家, 积分 13, 距离下一级还需 187 积分
论坛徽章:0
请问如何实现,输入一个字符串,然后退出循环?
谢谢!! &&&&&&&&:wink:&&&&
白手起家, 积分 20, 距离下一级还需 180 积分
论坛徽章:0
请问如何实现,输入一个字符串,然后退出循环?
原帖由 &蓝色键盘& 发表:
&&while (1)&&{
& && &&&if( !strncmp( fgets(buf,sizeof( buf ), stdin ),&quit& ,4) )
& & exit (0 );
不知我理解的对不对,好像上面这个不符合要求。如果执行上面这个代码,计算机会一直停在那儿等待用户输入字符,然后敲回车。才执行一次。然后,继续等输入。
我理解的应该是程序一直在不断循环执行,直到用户输入quit为止,跳出循环。下面我将讲解一下,请各位高手指点。先给出一个例程:
#include &stdio.h&;
#include &conio.h&;
int main(void)
& & & & while (1)
& & & & & & & & if(kbhit())
& & & & & & & & & & & &
& & & & & & & & printf(&I am Working......Press any key to STOP!\n"
& & & & return 0;
我们在这个例子中使用了kbhit()这个函数,他用于检测用户键盘是否有按下,即检查键盘按键信息,但是,有个特点,就是并不等待用户输入。但是,kbhit的返回值却等于0、1,如果有按键,返回1。我们要的是输入quit,才退出,恕本人才浅,无法解答。所以,我想请教各位高手有没有其他方法。
还有一种方法,就是利用子进程或线程,即让一个线程运行循环,在过程中不断判断一个变量的值,是否为真。而在主线程中接受用户输入,并改变那个变量的值,使之不符合条件,即跳出循环了。具体方法,未试。
腰缠万贯, 积分 9120, 距离下一级还需 880 积分
论坛徽章:0
请问如何实现,输入一个字符串,然后退出循环?
楼上的方法可以不阻塞
腰缠万贯, 积分 9120, 距离下一级还需 880 积分
论坛徽章:0
请问如何实现,输入一个字符串,然后退出循环?
当然这只是能在windows平台下的
要在unix下也实现这样功能的话要使用tcsetatttr设置终端或是使用select
白手起家, 积分 20, 距离下一级还需 180 积分
论坛徽章:0
请问如何实现,输入一个字符串,然后退出循环?
不好意思,Unix/Linux接触不多。
腰缠万贯, 积分 9120, 距离下一级还需 880 积分
论坛徽章:0
请问如何实现,输入一个字符串,然后退出循环?
在windows下能够做到这样也是不错的了
因为kbhit不是标准c函数
能够找到这个函数并学会使用也是很强的
白手起家, 积分 20, 距离下一级还需 180 积分
论坛徽章:0
请问如何实现,输入一个字符串,然后退出循环?
谢谢斑竹谬赞!呵呵....
论坛徽章:1
请问如何实现,输入一个字符串,然后退出循环?
unix下面要实现jamesqiao兄弟所说的,可以使用非阻塞I/O(select)
或者用两个进程来完成。
北京盛拓优讯信息技术有限公司. 版权所有 京ICP备号 北京市公安局海淀分局网监中心备案编号:22
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处

我要回帖

更多关于 字符串回车换行 的文章

 

随机推荐