【发布时间】:2020-10-01 16:14:39
【问题描述】:
我想从我的字符串中获取所有数字,然后将它们推送到向量,但在此之前我想显示我的“字符串数字”的值来检查效果,问题是我没有看到它。
string napis = "ada87dasu3da1";
string number = "";
int counter = 0;
for(int i = 0; i < napis.size(); i++){
if(isdigit(napis[i]) == true){
number[counter] = (char)napis[i];
counter++;
}else if(isdigit(napis[i]) == false && isdigit(napis[i-1]) == true)
cout << number; // <- there is a problem
counter = 0;
}
【问题讨论】:
-
您在无效位置索引
number。它的大小为 0,因此您根本无法对其进行索引。你可以试试push_back。 -
我修复了它仍然无法正常工作
-
cout可能是行缓冲的,所以cout << number不会打印任何东西,直到输出行尾(你永远不会这样做),或者缓冲区填满(它可能没有),或程序结束。尝试cout << number << flush或cout << number << endl以获得更可读的输出。