#include <string>
std::string input;
std::cin >> input;
用户想要输入“Hello World”。但cin
两个单词之间的空格失败。我怎样才能使cin
采取整体Hello World
?
我实际上是用结构来做到这一点的cin.getline
似乎不起作用。这是我的代码:
struct cd
{
std::string CDTitle[50];
std::string Artist[50];
int number_of_songs[50];
};
std::cin.getline(library.number_of_songs[libNumber], 250);
这会产生错误。有任何想法吗?
它不会“失败”;它只是停止阅读。它将词汇标记视为“字符串”。
Use std::getline http://en.cppreference.com/w/cpp/string/basic_string/getline:
#include <string>
#include <iostream>
int main()
{
std::string name, title;
std::cout << "Enter your name: ";
std::getline(std::cin, name);
std::cout << "Enter your favourite movie: ";
std::getline(std::cin, title);
std::cout << name << "'s favourite movie is " << title;
}
请注意,这是not与std::istream::getline
,适用于 C 风格char
缓冲区而不是std::string
s.
Update
您编辑后的问题与原始问题几乎没有相似之处。
你试图getline
进入一个int
,不是字符串或字符缓冲区。流的格式化操作仅适用于operator<<
and operator>>
。要么使用其中之一(并相应地调整多词输入),要么使用getline
并按词法转换为int
事后。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)