cin病变是什么意思 cin和cin.getline再输入字符数组的区别?
cin和cin.getline再输入字符数组的区别?
CIN直接输入字符串,不能包含空格,一般要求字符串类型,而getline,一般要求char P[]类型,可以包含空格,但要求长度
可分为三种情况:1)输入字符串不超过限制大小Get(STR,size):读取所有字符并将其留在输入缓冲区中,下一步操作将捕获哪些字符来读取输入并影响输入处理;getline(STR,size):读取所有字符并直接从输入缓冲区中删除,这不会影响后续的输入处理。
2)Get(STR,size):读取size-1字符,将STR[size-1]设置为“0”,然后将剩余字符(包括“n”)保留在输入缓冲区中。这些字符将被下一个操作捕获以读取输入并影响输入处理;Getline(STR,size):读取size-1字符,将STR[size-1]设置为“0”,将剩余字符(包括“n”)保留在输入缓冲区中,然后设置CIN的实际效果位(即if(!CIN)为true),并关闭输入。所有后续的输入都不会得到任何结果,当然,输入缓冲区中没有剩余的字符串。但是,如果您像本例中那样用clear()重置CIN,那么随后的输入将可用,并且您将得到留在输入缓冲区中的字符。
3)输入一个空行(即直接回车)get(STR,size):STR将获取“0”,并设置CIN的实际效果位以关闭输入,但回车仍将保留在输入缓冲区中,因此如果我们用clear()重置CIN,则下一个读取输入的操作将捕获“n”Getline(STR,size):STR将获取“0”,并删除“n”,而不设置实际效果位并关闭输入。所以对于cin.getline公司例如,空行是合法的输入,不会影响后续的输入处理。至于哪个更好,可能会因人们的习惯而有所不同。对于我们的编程,我们总是希望有更好的容错性。即使用户输入了不合理的输入,程序也应能提示重新输入或继续正常处理。然而,我们显然不希望用户的输入问题会导致程序错误或所有后续输入都不可用。使用get(STR,size)和getline(STR,size),可能会遇到设置失败位和关闭输入的情况,因此需要考虑相应的防错措施。
C 中cin.get和cin.getline的区别是?
在第一个流中,应该改进CIN的使用。如果要读取一行输入,正确的方法是cin.get公司(第20行/*此处写读入的字符数,可以是其他值*/)。Get()或getline(CIN,line)。get()的while的第二个语句的循环条件决定了一个输入将有一个输出,因此主题在输入之后有一个换行符,然后有一个输出。Endl是一个换行符,可以添加它来刷新缓冲区cin.get公司你可以把plus和primer结合在一起。Plus更适合初学者
cin病变是什么意思 cin1一般多久消失 cin二级严重吗
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。