2016 - 2024

感恩一路有你

getline(cin C 中cin.get和cin.getline的区别是?

浏览量:1312 时间:2021-03-13 06:54:25 作者:admin

C 中cin.get和cin.getline的区别是?

可分为三种情况:

1)输入字符串不超过限制大小get(STR,size):读取所有字符,当遇到“n”时,将“n”留在输入缓冲区,下一次读取输入的操作将捕获该字符,影响输入处理;Getline(STR,大小):当遇到“n”时,读取所有字符并直接从输入缓冲区中删除,这不会影响后续的输入处理。

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),可能会遇到设置失败位和关闭输入的情况,因此需要考虑相应的防错措施。

getline(cin s)函数用法 c语言getline函数用法

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。