您好我的c ++空格有问题请查看
char inp[10000];
char outp[10000];
int i;
cin >> inp;
for(i=0;i<=strlen(inp);i++)
{
outp [i] = inp[i];
cout << outp[i];
}
所以如果我运行它并键入:Hello stackoverflow输出将是:Hello。 任何帮助将不胜感激,这也只是代码的一部分。
答案 0 :(得分:2)
std::cout
用空格分隔单词(通常),您可以改用std::getline
。
std::getline(std::cin, inp);
而且,最好将std::string
用于字符串而不是字符数组。
答案 1 :(得分:0)
首先,为什么使用字符数组而不是std::string
?除非你有一个很好的理由使用字符数组,否则使用字符串会更加清晰。其次,如果您想要读取可变数量的单词并单独保存每个单词(您可能尝试这样做),请尝试以下操作:
std::string output[10000];
std::string inp;
int i = 0;
while (cin >> inp){
output[i] = inp;
i++;
}
这将读取您的所有单词并将每个单词存储在output
中的单独索引中。希望这有帮助!
答案 2 :(得分:0)
cin>>
只需要接受\ 0
cin.getline(name of string, string size)
会接受单词,直到遇到\ n
\0
- 空字符,在每个连续字母串中都有。
\n
- 新行字符,当行结束时(行通常由80个字符组成)存在。
因此,在您的代码中,您使用了cin>>
,这使您的程序只能使用一个单词,而不是更多。
尝试使用cin.getline(name of string, size of string)
,这样可以使您的代码相应地工作。
答案 3 :(得分:0)
当您使用>>
的{{1}}运算符时,它会使用以空格分隔的字符串的第一个标记。因此,说:
cin
...与
完全相同cin >> input; // where input is "hello 12 years"
获得整个&#34;句子&#34;用户在控制台中输入时,您必须使用std::getline( cin, input, ` `);
而不使用std::getline
参数:
separator