码迷,mamicode.com
首页 > 编程语言 > 详细

【C++】字符串输入

时间:2015-04-22 10:55:38      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:

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

【C++】字符串输入

标签:

原文地址:http://www.cnblogs.com/suzyc/p/4446506.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!