string l;
cin>>l[0];
cout<<l;
input:a
output:
根据我的说法,代码必须打印l [0]的值,但为什么没有输出?
答案 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];