Edu*_*yan 1 c++ string inputstream cin
我想从给定的分隔符读取std::string命名。默认情况下,当我执行. 如果是,我可以使用.destinationstd::cinstd::istream::operator<<destination << std::cindestinationchar[]std::getline
我们有什么用 std::string?
你的前提是错误的:std::getline确实适用于std::string:
template< class CharT, class Traits, class Allocator >
std::basic_istream<CharT,Traits>& getline( std::basic_istream<CharT,Traits>& input,
std::basic_string<CharT,Traits,Allocator>& str,
CharT delim );
Run Code Online (Sandbox Code Playgroud)
这意味着您可以从std::cin给std::string定的分隔符读取到直到:
std::string destination;
std::getline(std::cin, destination, '|');
Run Code Online (Sandbox Code Playgroud)
('|'作为示例分隔符)
注意:您应该getline在阅读之前检查返回destination。getline返回一个引用,如果流处于正确状态std::cin,则可以将其转换bool为其值true:
if (std::getline(std::cin, destination, '|') == false) {
// error handling
}
Run Code Online (Sandbox Code Playgroud)