使用索引输入值时,cout字符串没有输出

时间:2015-12-30 10:01:01

标签: c++

string l;
cin>>l[0];
cout<<l;

input:a
output:

根据我的说法,代码必须打印l [0]的值,但为什么没有输出?

2 个答案:

答案 0 :(得分:2)

你需要做

cin>>l;

在您当前的代码状态下,当您尝试访问l[0]时,您正尝试访问可能存在或可能不存在的内存位置。 cin >> l[0]不会更改保持为0的字符串的大小。

因此,当您尝试执行cout << l时,您实际上是在打印一个空字符串。

另一种选择是

string s; 
s.resize(1);

答案 1 :(得分:1)

你有一个空字符串。它没有任何字符,包括第0个字符,你试图读入。您需要在字符串中实际添加字符:

std::string l;
l.push_back('\0'); //Or any other character
std::cin >> l[0];