1.cin
第①次尝试
#include <iostream> #include <string> using namespace std; int main() { string cww1; cin>>cww1; cout<<cww1; return 0; }
运行结果:
读到空格会终止读取,所以只显示了Makishima.
根据Bloguy的博文中所讲:
输入原理:
程序的输入都建有一个缓冲区,即输入缓冲区。一次输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲区,而cin函数直接从输入缓冲区中取数据。正因为cin函数是直接从缓冲区取数据的,所以有时候当缓冲区中有残留数据时,cin函数会直接取得这些残留数据而不会请求键盘输入。
第②次实验
#include <iostream> #include <string> using namespace std; int main() { string cww1; string cww2; cin>>cww1; cin>>cww2; cout<<"cww1="<<cww1<<endl; cout<<"cww2="<<cww2<<endl; return 0; }
运行结果:
第一次多输入的数据还残留在缓存区中,第二次输入就直接从缓存区中提取而不会请求键盘输入.
2.getline()函数
getline()函数用于读取整行字符串,通过回车确定输入结尾,调用方法为cin.geiline()
第①次尝试
#include <iostream> using namespace std; int main() { char cww1[20]; cin.getline(cww1,20,); cout<<cww1<<endl; return 0; }
运行结果:
输入的字符串包括空格都会被读取.
getline()函数完整的使用格式:getline(数组名,数组长度,结束符)
第②次尝试
#include <iostream> using namespace std; int main() { char cww1[20]; cin.getline(cww1,20,‘ ‘); cout<<cww1<<endl; return 0; }
运行结果:
读到‘ ‘会终止.
第③次尝试:
#include <iostream> using namespace std; int main() { char cww1[20]; cin.getline(cww1,10); cout<<cww1<<endl; return 0; }
运行结果:
长度为n,输出字符最大个数为n-1个.
3.get()
面向行输入get(),与getline()相似但不同之处在于不会丢弃回车结束符,格式:cin.get(数组名,数组长度,结束符).
→相关博文:http://www.cnblogs.com/A-Song/archive/2012/01/29/2331204.html
时间: 2024-10-10 19:17:39