此代碼編譯和按預期工作,但註釋行沒有出於某種原因,任何人都可以告訴我爲什麼。C++通過使用迭代器刪除空格失敗
#include <iostream>
int main()
{
std::cout << "Enter a line:\n";
std::string Line;
std::getline(std::cin,Line);
const std::string Whitespace = " \t\t\f\v\n\r";
//std::string Line= std::string(Line.find_first_not_of(Whitespace),Line.find_last_not_of(Whitespace)+1); // Why doesnt this work?
std::string Line= Line.substr(Line.find_first_not_of(Whitespace),Line.find_last_not_of(Whitespace)+1);
std::cout << "You entered:" << Line << "\n";
}
編輯我的印象是找到拉斯維加斯返回一個迭代器不是爲size_t所以這就是爲什麼我很困惑
find_first_not_of()返回什麼?看起來像索引而不是迭代器。 – Hayt
「由於某種原因不起作用」。它怎麼不起作用?你在問人們猜測你的輸入和輸出。 – Matt
沒有用!注意'string substr(size_t pos = 0,size_t len = npos)const;' –