cin.get(line,ArSize) cin.getline(line,ArSize)和getline(cin,name)读取一行字符串区别
来源:互联网 发布:淘宝查号网 编辑:程序博客网 时间:2024/04/30 00:01
cin.get(line,ArSize)应用于char数组,比如 char line[ArSize];
getline(cin,name)用于string字符串,比如 string name;
cin.get 和 cin.getline 的区别:
分为三种情况来看:1)输入的字符串不超过限定大小 get(str,Size):读取所有字符,遇到'\n'时止,并且将'\n'留在输入缓冲区中,其将被下一个读取输入的操作捕获,影响该输入处理; getline(str,Size):读取所有字符,遇到'\n'时止,并且将'\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)的判断为真),关闭输入。其后的所有输入都无法得到任何东西,当然也无法得到输入缓冲区中剩余的字符串。但如果象本例一样用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),都可能碰到设置失效位,关闭输入的情况,故都是需要考虑到相应的防错处理的。
0 0
- cin.get(line,ArSize) cin.getline(line,ArSize)和getline(cin,name)读取一行字符串区别
- getline(cin, line) demo
- cin.get和cin.getline的区别?
- cin.get和cin.getline的区别?
- cin.get和cin.getline的区别
- cin.get()和cin.getline()区别
- cin.getline()和cin.get() 的区别
- cin.getline()和cin.get()的区别
- cin.get 和 cin.getline 的区别
- c++中的cin,cin.get(),cin.getline()读取字符串
- cin.get 和 cin.getline
- cin.getline()和cin.get()
- cin.get(),cin,cin.getline()的区别
- cin,cin.get,cin.getline的区别
- cin>>和cin.get()和cin.getline()
- getline(),cin.getline(),cin.get()区别
- cin.getline(),getline(),cin.get()区别
- cin.get(), cin.getline(), getline()简单区别
- 股价飙升20%市值增长100亿,《纸牌屋》之父Netflix凭什么比他的竞争者要强12倍?
- C语言总结
- 第八周项目3--顺序串算法
- 验证码登陆demo
- iOS10中的极光推送消息的适配
- cin.get(line,ArSize) cin.getline(line,ArSize)和getline(cin,name)读取一行字符串区别
- ssh连接报Connection closed by foreign host.
- 日志的环绕通知(ip获取dubbo版)
- Swift3.0语言教程使用指针创建和初始化字符串
- 1003. Computer Game
- 【第9周 项目1 - 猴子选大王(数组版)】
- 排序算法
- 第八周 建立顺序串的算法库
- embedding_lookup