只需要长字符串C++的最后一个字符 我使用C++,法官给我一个长字符串,它不能在字符串中。 我只需要最后两个字符!我该怎么办??别忘了这个代码回答不正确 char a,b; std::string s; std::cin >> s; a=s[s.size()-1]; b=s[s.size()-2];

只需要长字符串C++的最后一个字符 我使用C++,法官给我一个长字符串,它不能在字符串中。 我只需要最后两个字符!我该怎么办??别忘了这个代码回答不正确 char a,b; std::string s; std::cin >> s; a=s[s.size()-1]; b=s[s.size()-2];,c++,character,C++,Character,这将在空白字符上标记输入。也就是说,如果John Silver在标准输入中等待很长时间,那么您只能在s中等待很长时间。循环进行 while (std::cin >> s) ; 或者使用std::getlinestd::cin,s;如果输入可以包含换行符,则同样适用-然后在循环中执行。此函数安全地返回任何字符串的最后2个字符,除非字符串中的字符少于2个,在这种情况下,它将返回所有可用字符: std::string last_2(const std::string& s) {

这将在空白字符上标记输入。也就是说,如果John Silver在标准输入中等待很长时间,那么您只能在s中等待很长时间。循环进行

while (std::cin >> s) ;

或者使用std::getlinestd::cin,s;如果输入可以包含换行符,则同样适用-然后在循环中执行。

此函数安全地返回任何字符串的最后2个字符,除非字符串中的字符少于2个,在这种情况下,它将返回所有可用字符:

std::string last_2(const std::string& s)
{
    return std::string(std::prev(s.end(), 2), 
                       s.end());
}
这也是:

std::string last_2(const std::string& s)
{
    return s.substr(std::max(s.length(),std::size_t(2))-2, 2);
}

它什么时候会消失呢?但是如果我想输入我的代码,它将永远输入!我想要像cin这样的输入,但只需要最后两个字符。如果你是手动输入,你需要自己插入EOF在windows上按CTRL+Z,在unix上按CTRL+D。
std::string last_2(const std::string& s)
{
    return s.substr(std::max(s.length(),std::size_t(2))-2, 2);
}