#include<bits/stdc++.h>
using namespace std;
int main(){
int length;
cin>>length;
string s(length,'\0');
cin>>s;
cout<<s;
}
int上面的代码首先是im接受一个int长度,然后使用它来定义字符串的大小,但是问题是,当我cin>>s
定义了长度之后,该字符串仍然比char的长度多
即OUTPUT->
3
Hello
Hello
在定义了字符串的长度之后,这应该不会发生
答案 0 :(得分:1)
也许你想要
s
答案 1 :(得分:0)
for ( let key in elements) { items.push( <Card> <CardBody> <CardTitle> {key} <Button className='btn-simple btn-icon btn-round xButton' color='danger' onClick={() => this.NotLearnt(key)}><FontAwesomeIcon icon={faTimes}/></Button> </CardTitle> <CardText className="meaning">{elements[key]}</CardText> </CardBody> </Card> ) }
从流中提取字符串
从输入流
istream& operator>> (istream& is, string& str);
中提取一个字符串,并将序列存储在is
中,该序列将被覆盖(替换str
的先前值)。 每个提取的字符都会附加到字符串,就像调用其成员str
一样。
因此,当您执行操作时:
push_back
该字符串的内容将替换为您可以输入的任意大小的输入,因为字符被附加到字符串上,就像调用cin>>s;
一样。
答案 2 :(得分:0)
简短的回答:是的,应该。您会误解您给出的说明的含义,而与文档无关。
长答案:您创建了一个保留3个字符的空字符串。 push_back
为operator>>
指定了新值。旧值,丢失了3个字符的字符串。