我是一般编程的新手,我在使用这段代码时遇到了麻烦。
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");
它不会越过空间而只会输出它。
答案 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
作为默认分隔符。