c++利用cin.get()输入带空格的一串数据【追加悬赏】
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++利用cin.get()输入带空格的一串数据【追加悬赏】相关的知识,希望对你有一定的参考价值。
需要用cin。get(输入一串数据,其中可能包含空格)
比如:输入abc 2df,则输出为abc 2df。
我做的程序如下:
#include <iostream>
#include <string>
using namespace std;
int main()
int t=0;
string str2;
char a;
while(cin.get(a))
if(a!='\n')
str2[t]=a;
t++;
else break;
cout<<str2;
cin.get();
cin.get();
return 0;
以以上程序为例,输入abc时,通过逐行运行可以得到,在运行到b的时候,会出现string subscript out of range的错误。这是为什么呢? stirng类型不是可以默认当做数组用的吗?
【ps:解决问题追加50分O(∩_∩)O~】
1.那个append的用法我没有查到,请问这些函数您在哪里查用法呢?
2.cin.getline()这个用法我看网上说要输入两个回车,虽然我实践的时候没有输入两个回车,但是我不确定别的编译器是不是要输入两个回车,我不敢用···
那也得分配了内存才能这么用啊!否则就下标溢出了。
str2[t]=a;
t++;
你应该用 str2.append(1,a); 或者 str2 += a;
此外,你的思路不对。你的目的是读取一行对吧?用cin.getline就可以了噢!不是更方便吗 参考技术A append用法参考:
http://www.cppreference.com/wiki/string/append
不推荐cin.getline()
推荐getline,参考:
http://www.cppreference.com/wiki/string/getline
参考资料:http://www.cppreference.com/wiki/start
参考技术B 你的逻辑我无法理解如何输入带空格的字符串
对于string类
getline(cin, str)
1)利用格式符“%[]”它的作用为扫描字符集合。Scanf(“%[^c]”,str); 其中“c”是一个具体的字符常量(包括控制字符)。当输入字符串时,字符“c”将被当作当前输入的结束符。利用此格式符就可以由编程者自己指定一个输入结束符。
以上是关于c++利用cin.get()输入带空格的一串数据【追加悬赏】的主要内容,如果未能解决你的问题,请参考以下文章
C++基础:各种输入方法总结,cincin.get()cin.getline()getline()gets()getchar()