C ++没有识别空格

时间:2014-01-16 01:14:59

标签: c++

我是一般编程的新手,我在使用这段代码时遇到了麻烦。

cout << "what would you like to have inside that?" << endl;
cout << "please enter a sentance" << endl; 
cin.sync();
cin >> time[d];

cout << "Is this what you wrote?" << endl;
cout << time[d]<< endl;

system("pause");

它不会越过空间而只会输出它。

3 个答案:

答案 0 :(得分:4)

std::cin认为所有空格(空格,换行符,制表符等)都是不同输入之间的“分隔符”。有一些方法可以更改分隔符,但是getline可能更好地服务于默认为新行作为分隔符(尽管您可以选择指定其他分隔符)。

答案 1 :(得分:0)

我相信你正在寻找std :: getline,因为std :: cin会将任何空格视为分隔符。试试这个:

#include <iostream>
#include <vector>
#include <string>

int main()
{
  std::vector<std::string> time(1);
  size_t d = 0;

  std::cout << "What would you like to have inside of that?" << std::endl;
  std::cout << "Please enter a sentence: ";
  std::getline(std::cin, time[d]);

  std::cout << "Is this what you wrote?" << std::endl;
  std::cout << "[" << time[d] << "]" << std::endl;

  return 0;
}

答案 2 :(得分:0)

而是使用cin来获取输入time[d],请尝试使用getline。您可以修改以下代码 -

 cout << "Please enter a sentence: ";
 std::getline(std::cin, time[d], delim);

现在它需要time[d]作为字符串,直到找到定界字符delim。分隔字符可以是\t\n等。

如果您没有指定定界字符,则\n作为默认分隔符。