代码:
1 #include
4 using namespace std; 5
6 int main(){ 7
8 char* s;
9 s = new char[50]; //必须要分配空间10 cin.getline(s,5);11 int i = 0;
12 while(s[i] != '\\0'){13 cout<16 cout<
19 string str;
20 getline(cin,str);21 cout<
输⼊输出:
(input)slkdsa;34slkd4sa;34
(input)hel#idhelid
分析:
C++中有两个getline函数,⼀个是在string头⽂件中,定义的是⼀个全局的函数,函数声明是istream& getline ( istream& is, string& str, chardelim )与istream& getline ( istream& is, string& str );
另⼀个则是istream的成员函数,函数声明是istream& getline (char* s, streamsize n )与istream& getline (char* s, streamsize n, char delim );注意第⼆个getline是将读取的字符串存储在char数组中⽽不可以将该参数声明为string类型,因为C++编译器⽆法执⾏此默认转换。
getline函数⼤致流程:
1、⾸先判断istream的failbit位是否为1,为1的话意味着输⼊流的状态有错误,则不进⾏读操作,getline函数结束执⾏2、从当前位置开始从输⼊流中依次读取单个字符并拷贝到缓冲区,直到遇到下列条件满⾜时,循环结束。(1)遇到⽂件尾时停⽌读操作,并设置流对象的结束标记为1
(2)读到调⽤者指定的分隔符时,此时将分隔符之前的字符拷贝到缓冲区中,但分隔符本⾝不拷贝进去,并且下次读操作将从分隔符后的下⼀个字符开始。
(3)已经读了n-1个字符(n是调⽤者传⼊的第⼆个实参_Count的初值),此时要把流对象的错误标志位置1
利⽤getline连续读取直⾄⽂末
1 #include
4 using namespace std; 5
6 int main(){ 7
8 string s;
9 while(getline(cin,s)){10 cout<13 return 0;14 }
因篇幅问题不能全部显示,请点此查看更多更全内容
怀疑对方AI换脸可以让对方摁鼻子 真人摁下去鼻子会变形
女子野生动物园下车狼悄悄靠近 后车司机按喇叭提醒
睡前玩8分钟手机身体兴奋1小时 还可能让你“变丑”
惊蛰为啥吃梨?倒春寒来不来就看惊蛰
男子高速犯困开智能驾驶出事故 60万刚买的奔驰严重损毁
Copyright © 2019-2025 dfix.cn 版权所有 湘ICP备2024080961号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务