c++string标准输入和getline()整行读入


1、使用标准IO操作读写string对象

  我们都知道,使用标准iostream操作来读写int ,double等内置类型的值,同样,我们也可以使用IO操作来读写string对象

c++ code:

 1 #include<iostream>
 2 #include<string>
 3 using namespace std; 4 int main() 5 { 6     string s; 7     cin >> s;//从输入流中读取字符序列到对象s
 8     cout << s << endl;//输出对象s
 9     system("pause"); 10     return 0; 11 }

这段程序首先定义了一个空的string对象,然后将标准输入找中的内容读取到对象s中,具体实现:在执行读取操作的时候,string对象会自动忽略开头的空白(如空格符、换行符、制表符等),并从第一个真正的字符开始读入,知道遇到下一个空白字符为止。因此,使用cin>>只能从标准输入中读取单个词。

如上所述,如果输入的是"  hello  word!  "(注意开头和结尾以及中间是空格),则输出的是hello。

2、使用getline()读取一行

有时候我们希望在最终的字符串中保留输入时的空白符,这时候应该用getline函数来替代原来的>>运算符。getline函数的参数是一个输入流和一个string对象,原型是:getline(cin,string对象),函数从给定的输入流中读入内容,直到遇到换行符为止,但是此时的换行符要被读入,然后把所读入的内容存到string对象中,但此时不存入最后那个换行符。getline只要遇到换行符就停止读入并且返回string对象,哪怕一开始输入就是换行符也是如此,只不过会返回一个空的string对象。和输入运算符一样,getline也会返回它的流参数,所以可以用getline的结果作为条件。

c++ code:

 1 #include<iostream>
 2 #include<string>
 3 using namespace std;  4 int main()  5 {  6     string line;//每次读入一整行,知道遇到换行符结束读入
 7     while (getline(cin,line))  8         if (!line.empty())  9             cout << line << endl; 10     system("pause"); 11     return 0; 12 }

 欢迎评论!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM