提问人:Darnoc Eloc 提问时间:4/9/2020 最后编辑:Darnoc Eloc 更新时间:4/10/2020 访问量:46
从字符数组中读取整数的 Sstream 类 [已关闭]
sstream class to read integers from character array [closed]
问:
我还没有看到任何利用 stringstream 从字符数组中读取整数列表的正确应用。
元素应作为空格分隔的字符串/(char 数组)输入在一行上,并使用 sstream 类来执行必要的转换。
这应该在不使用 vector 或任何其他额外的 STL 容器(仅限 std::string 和 char 数组)的情况下完成,生成的整数数组的长度应存储在变量中。
进行这种操作的最有效方法是什么?
答:
1赞
ChrisMM
4/9/2020
#1
假设我明白你的意思,那么
#include <iostream>
#include <vector>
#include <sstream>
int main() {
std::string apples;
std::getline( std::cin, apples );
std::istringstream iss( apples );
std::vector<int> vec;
int val;
while ( iss >> val ) {
vec.push_back( val );
}
for ( int i : vec ) {
std::cout << i << ',';
}
}
评论
0赞
Darnoc Eloc
4/9/2020
在不使用向量的情况下,将输入存储到整数数组(指针)中。
0赞
ChrisMM
4/9/2020
从现有数组转换为数组很简单。vector
0赞
Darnoc Eloc
4/9/2020
#2
这更像是我所得到的。
int* theheap = new int[10];
std::string num;
int val = 0;
int size = 0;
std::cout << "Enter the elements of heap" << std::endl;
std::getline( std::cin, num );
std::istringstream iss(num);
while ( iss >> val ) {
if (val != ' '){
theheap[size] = val;
++size;
}
}
评论
0赞
ChrisMM
4/11/2020
你不必比较 ,事实上,这将使它忽略数字 32。由于已经读取整数,并跳过空格。' '
iss >> val
评论
stringstream
stringstream