在c ++中,如何查找未分隔成数组的数字文件?
例如78940725450327458如何才能将这些数字放置到列表[0] = 7,列表[1] = 8,列表[2] = 9等等。
答案 0 :(得分:1)
std::vector<int> numList;
while(std::cin) {
char c;
std::cin >> c;
if(std::cin.eof())
break;
if(c < '0' || c > '9') {
// handle error
}
numList.push_back(c - '0');
}
答案 1 :(得分:0)
使列表成为char
s。
cin >> list[0]
会读取一个字符。
答案 2 :(得分:0)
我建议你把所有的行读成int变量然后用这样的循环来做:
int temp = a % 10;
这将每次给你最后一个号码,请务必在此之后更新原始号码,最后要做的就是把它放到数组中,这就是容易的部分。
答案 3 :(得分:0)
有很多方法可以做到这一点。我可能会做以下事情:
#include <algorithm>
#include <fstream>
#include <iterator>
#include <vector>
int ascii2int(int value) // this could be a lambda instead
{
return value - '0';
}
int main()
{
std::vector<int> nums;
std::ifstream input("euler8Nums.txt");
if (input)
{
// read character digits into vector<int>
nums.assign(std::istream_iterator<char>(input), std::istream_iterator<char>());
// transform ascii '0'..'9' to integer 0..9
std::transform(nums.begin(), nums.end(), nums.begin(), ascii2int);
}
// your code here
return 0;
}