我需要读取两个第一行是大数字(最多200位)的文件:
1. 123456789123456789...
2. 123456789123456789...
并将它们放入:
std::vector<int> digits[2];
怎么做?
将文件读取到std::string
,就像那样:
std::string line[2];
void input(char* filename)
{
std::fstream inFile;
inFile.open(filename, std::ios::in);
if(inFile.is_open())
{
for(int i = 0; i < 2; i++)
{
std::getline(inFile, line[i]);
}
}
inFile.close();
}
答案 0 :(得分:1)
这个怎么样?
std::vector<int> digits[2];
void input(const char* filename)
{
std::ifstream inFile(filename);
if (inFile.is_open())
{
for(int i = 0; i < 2; i++)
{
std::string header, number;
inFile >> header >> number;
for (size_t j = 0; j < number.size(); ++j)
digits[i].push_back(number[j] - '0');
}
}
}
这似乎并不特别困难。我做了几个假设,因为你的要求并不完全清楚。
在我的代码header
中获取“1”或'2.'在我假设你不感兴趣的行的开头部分。之后只是循环遍历number
字符串并将每个数字转换为它的整数值(这就是我的意思)假设您要这样做并将其添加到矢量中。您可以通过减去'0'
将数字转换为整数值,如上面的代码所示。