【发布时间】:2019-07-02 13:50:45
【问题描述】:
当我使用类似的代码解决一些提高我的技能的问题时,我得到以下代码的输出“a@” 我输入了 10 个“a”
#include<iostream>
using namespace std;
int main(int argc, char *argv[])
{
char a[11];
for(int i = 0; i < 10; i++) cin >> a;
string s(a);
cout << s;
cout << a[3];
return 0;
}
【问题讨论】:
-
请包含输入内容。
-
我很确定
for(int i = 0; i < 10; i++) cin >> a;不会像您认为的那样做。此外,如果您抱怨预期行为与实际行为之间的差异,您的问题必须包含输入、预期输出、实际输出以及您预期预期输出的原因。 -
std::string将期望a以空值结尾,但事实并非如此。确保a[10]等于'\0' -
@ChakerTriangle,如果你想为数组的每个元素分配一个
"a",你需要像这样写:cin >> a[i];并为最后一个元素设置'\0'。 -
如果要输入10个字符串,应该使用
string a[10]; for (i = 0; i < 10; ++i) cin >> a[i];