首页 > 代码库 > 字符串读取
字符串读取
有两种方法可以读C++字符串:使用提取操作符(>>)和getline函数。
(1)字符串提取操作符:
首先,它跳过前导空白字符,然后提取所有邻近的非空白字符。当发现空白字符时,
它就停下来。终止空白字符被留在输入流中.
提取操作符可以用来从键盘(cin流)或者使用开放式文件流从文件读数据。例如,要把一个值读入字符串
对象str1,你只需要编写下面的语句之一。
cin>>str1; or fsIn>>str1;
(2)getline 函数
cin.getline(字符指针(char*),字符个数N(int),结束符(char));
cin的getline需要这样用: cin.getline(s,50,‘\n‘);
其中s需要时char *或unsigned char *,50表示读入大小(最大),‘\n‘表示分隔符,可以省略,默认就是这个,如果是‘ ‘,则表示空格作为截止符
getline(cin,s,‘\n‘),s需要是string,需要引入string头文件,std::string空间引入,‘\n‘可省略,如果是‘ ‘,则表示空格作为截止符
cin.getline适合你知道读入大小,固定char数组,速度快
getline(cin,s)不需要指定大小,但速度慢、生成的文件大,适合偷懒用
//读取一个姓名字符串,其中名和姓由逗号分开,然后打印这个姓名。#include<iostream>#include<iomanip>#include<string>using namespace std;void main(){ cout<<"Enter a name in the form<last,first>:\n"; char lastName[20]; cin.getline(lastName,20,‘,‘); char firstName[20]; cin.getline(firstName,20,‘\n‘); cout<<"Here is your name:\n"<<firstName<<‘ ‘<<lastName<<"\n"; }
#include<iostream>#include<sstream>using namespace std;void main(void){/* char s[100]; cin.getline(s,100,‘\n‘);//cin.getline(s,100);//也可以,默认都是‘\n‘*/ string s; cin.clear(); getline(cin,s); cin.clear (); cout<<s<<endl; string tempStr; istringstream in(s);//===================?????????????????????///* istringstream in; in.str(s);*/ while(in>>tempStr) cout<<tempStr<<" length is "<<tempStr.size()<<endl; in.clear(); }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。