我正在尝试从字符串UID001
中获取数字cin.get
(用户将始终输入“UIDnnn”)。我尝试使用cin.ignore
和has_key?
分隔符,但没有结果。从字符串中提取整数的最有效方法是什么?
答案 0 :(得分:0)
嗯,最简单的符合c ++标准的解决方案似乎与我的评论中提到的一样。
将ID值读为std:string
:
std::string ID;
std::cin >> ID;
获取带有数字部分的子字符串:
std::string numpart = ID.substr(3);
将其转换为数值:
int idnum = std::stoi(numpart);
答案 1 :(得分:0)
这是scanf
和公司真正运作良好的地方之一:
scanf("UID%d", &number);
对于iostream来说,它有点丑陋,但我会考虑这样的事情:
for (int i=0; i<3; i++) {
char ch;
cin.get(ch);
}
cin >> number;