我有一个非常大的数字文件,不适合int数据类型。我的任务是获取大数字的每个数字,并将其分配给链接列表中的自己的节点。我还需要在文件中一次读取2个大数字,文件中的每个数字用换行符分隔。
到目前为止,我将其用于测试目的:
inFile.open("file.txt");
inFile >> bigNumber;
for(const auto &c : bigNumber) {
cout << c << endl;
}
这会打印正确的值,但问题是它是一个字符,我不能添加或乘以这个数字。如何从字符串中提取每个单独的数字作为int?
我也被告知使用stringstream这是可能的,虽然我不知道这些对象是如何工作的?如果可能的话,我非常愿意采用更好/更清洁的方法完成上述任务。
答案 0 :(得分:2)
取决于你想做什么:
要将值作为ascii代码读取,可以使用
char c = 'a';
int i = (int) a;
/* note that the int cast is not necessary -- int i = a would suffice */
转换字符&#39; 0&#39; - &GT; 0,&#39; 1&#39; - &GT; 1等,你可以写
char c = '4';
int i = a - '0';
/* check here if i is bounded by 0 and 9 */