www.ypnh.net > 如何解决C++中whilE(Cin.gEt!='\n')吐字符的问题

如何解决C++中whilE(Cin.gEt!='\n')吐字符的问题

char a[3][30]; char b[3][30]; //如果定义成a[3][3]则每行最多只能有两个有效的字符,虽然你看到能正常输出,但已经产生内存越界访问了.循环改成:do {cin>>a[i1++];} while(cin.get()!='\n') ;do {cin>>b[i1++];} while(cin.get()!='\n') ;

cin.get改成cin.getline就对了

cin.get是c++吧,cin.get()就是接收输入(回车也作为一个字符).将接收到的字符存放在变量c中,判断c的值是否是'\n'(c=cin.get()是赋值语句,其返回值就是c赋的数值,也就是c赋值后的值).当输入的字符不是回车'\n'时,执行while.

有用,这样可以连续读入一个字符数组.但是这个语句有问题,如果在main函数内的末尾有这个语句,用户在输入回车符前程序无法结束

你好!如果从你贴的这一句代码来看,cin应该是你定义的一个变量.这个循环语句,只要满足括号中的条件(值为cin并且cin.get()的值不等于回车),此循环就会一直执行下去,除非不满足括号中的条件,循环就结束.你的代码贴的不全,只能这么解释了,解释不足,请见谅哦!希望对你有所帮助,望采纳.

while(cin>>N) {if(N==13)break;//N是整型的}

cin.ignore(a,ch)方法是从输入流(cin)中提取字符,提取的字符被忽略(ignore),不被使用.每抛弃一个字符,它都要计数和比较字符:如果计数值达到a或者被抛弃的字符是ch,则cin.ignore()函数执行终止;否则,它继续等待.它的一个常

1.cin.get()从指定的输入流中提取一个字符,函数的返回值就是这个字符.文件结束符会返回EOF,一般以-1代表EOF. #include using namespace std; int main(){ char c; while((c=cin.get()!=EOF)) cout.put(c); return 0;}2.cin.get(ch)读取一个字符

使用标准控制台输入流,用户可能会有如此的输入123aj,当输入是给一个整型时,123后面的aj会留在输入缓冲中,这样aj将和后面下一次的输入一起被缓冲递交给输入处理,从而可能导致输入不合法或者出现意料外的情况,理解这个你要明白控制台标准输入输出是被缓冲的,余下就是这条语句的理解了,其实它做的就是将后面的不合法输入在缓冲中的给清理掉,为下一次输入扫清障碍.还要明白一点cin.get()是不会忽略空格和回车的,每次输入的最后你总是敲击enter以表明你的输入结束从而为上述语句总能处理成功提供保障.

int get(); istream &get( char &ch ); istream &get( char *buffer, streamsize num ); istream &get( char *buffer, streamsize num, char delim ); istream &get( streambuf &buffer ); istream &get( streambuf &buffer, char delim ); get()函数被用于输入流,和

网站地图

All rights reserved Powered by www.ypnh.net

copyright ©right 2010-2021。
www.ypnh.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com