本文介绍了为什么cin.getline()在这里不起作用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

class AbC
{
public:
	void SetData()
	{
		cout<<"Enter Text : ";
		std::cin.getline(Text,29);
		cout<<"Enter Age : ";
		cin>>Age;
	}
public:
	char Text[30];
	float Age;
};
void main()
{
	int x;
	std::cin>>x;// when write this statment i can not insert text with cin.getline() , and when i delete this statment cin.getline() work

	AbC obj;
	obj.SetData();

}

推荐答案

std::cin.getline(Text,29);

返回,因为它在输入流中找到了剩余的'\ n'字符。



在cin>> x之后,通过以下代码清除输入流,getline将起作用。

returns because it found the remaining '\n' character in the input stream.

After cin>>x, clear the input stream by the following code, and getline will work.

int x;
	std::cin>>x;
std::cin.ignore(std::cin.rdbuf()->in_avail()); // clear the input stream


这篇关于为什么cin.getline()在这里不起作用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-26 01:21