【发布时间】:2019-09-20 02:25:31
【问题描述】:
编辑:- 他的问题与Getting a character from a string is returning an unexpected number? 有何不同
- 此处指定的技术是 C#,而不是 c++。
- 问题关联列表框,而我的问题关联向量和字符串。
我试图在我的 c++ 整数向量(向量)中借助字符串迭代器推送一个充满整数的字符串,但不幸的是,当我推送取消引用的字符串时,我得到的只是一些垃圾值被推送到我的向量。
我尝试搜索谷歌好几天。除此之外,我尝试查看文档,还尝试使用 (int) 强制转换 de 引用的字符串迭代器。
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
string str = "1234";
vector<int> vec;
for (string::iterator itr = str.begin(); itr != str.end(); ++itr){
vec.push_back(*itr);
}
for (vector<int>::iterator itr = vec.begin(); itr != vec.end();
++itr) {
cout << *itr;
}
return 0;
}
预期输出:1234
实际输出:49505152
【问题讨论】:
-
'1'与1不同。例如,在 ASCII 中,'1' == 49。编辑:请注意您的输出是连续的 2 位数字。 49、50、51 和 52。 -
嗯,这解释了很多。有没有办法强制解决这个问题,即保留整数而不将其转换为 ASCII 值?
-
Brian 发布了一个答案,包括如何做到这一点。
-
接近投票者:这不是真正的骗子,这是 C++ 而骗子是 C#
-
是的,请看一下,感谢@Jabberwocky 的帮助。