空间未显示

时间:2014-03-15 17:55:16

标签: c++ space

您好我的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。 任何帮助将不胜感激,这也只是代码的一部分。

4 个答案:

答案 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