在C++中,可以用下面的方式来读取输入字符串:cin<< 。但是它只可以读取一个单词,不能读取含有空格的字符串。
而 cin.getline与cin.get则可以读取一行字符串,但它们又有些不同:cin.getline会把后面的换行符读入并转换成空字符,而cin.get不会读取换行符。这两个函数都是用于字符串数组的。
另外,对于用string定义的字符串,有另一个函数:getline(cin,stringname)
但是,我在使用它的过程中发现了一个问题:当使用这个函数时,需要按两次回车键,程序才能继续下去,而且如果接下去又一次调用这个函数的话,将会出现第二个函数读取不到字符串的情况。
分析原因,我想是因为第一个回车键被读走了,所以要再按一下回车键才能继续执行,但是第二个函数却读取到了第二个回车符,于是认为字符串读完了。
解决方法:在两个getline(cin,stringname)之间加一个不带参数的cin.get()就可以了,但是在显示屏幕上还是会出现空行。
而 cin.getline与cin.get则可以读取一行字符串,但它们又有些不同:cin.getline会把后面的换行符读入并转换成空字符,而cin.get不会读取换行符。这两个函数都是用于字符串数组的。
另外,对于用string定义的字符串,有另一个函数:getline(cin,stringname)
但是,我在使用它的过程中发现了一个问题:当使用这个函数时,需要按两次回车键,程序才能继续下去,而且如果接下去又一次调用这个函数的话,将会出现第二个函数读取不到字符串的情况。
分析原因,我想是因为第一个回车键被读走了,所以要再按一下回车键才能继续执行,但是第二个函数却读取到了第二个回车符,于是认为字符串读完了。
解决方法:在两个getline(cin,stringname)之间加一个不带参数的cin.get()就可以了,但是在显示屏幕上还是会出现空行。