在C++中如何直接输入一个带空格的字符串?若用getline则需要注意哪些问题

如题所述

一般来说,必须有一个界定字符串结束的字符,在c++中,并不提供此类函数,因此如果有特殊要求,都是自己写函数实现,比如像直接一个个读取char,到达所指定的终止字符时候,读入的就是想要的字符,这样空格也可以读入。
getline函数是用于读入一行的函数,理所当然,对于行中有空格,可以读入,不过getline函数是c的函数,它的容错性非常差,而且没有错误处理机制,因此,使用它的时候一定要保证输入合法,像你直接输入回车,EOF字符等,都会让你的程序game over追问

高手,您能否再给我讲讲在这里为什么只能用#include然后用命名空间using namespace std;而一用#include就出错啊。。。谢谢!

追答

因为iostream.h没使用命名空间这个机制,你可以打开iostream试一试,里面的cout,cin是与iostream不同的机制,iostream比较类似于c的stdio.h,*.h的c++头文件是在c++标准还没有完全形成的时候编写的,所以说它基本上没有是用命名空间,你在使用了iostram后继续使用iostream.h的话会有两个输入输出流,系统是无法识别的
喂,好歹我打了这么多字,还不选??

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-22
可以使用gets();char *gets( char *buffer ); 本函数可以无限读取,不会判断上限,所以应该确保buffer的空间足够大,以便在执行读操作时不发生溢出.
用getline时要注意 getline函数从输入流的下一行读取,第一行数据会丢失。
相似回答