C++ 如何从C+;中提取所有数字+;一个非常大的数字串?

C++ 如何从C+;中提取所有数字+;一个非常大的数字串?,c++,string,C++,String,我有一个非常大的数字文件,不适合int数据类型。我的任务是获取大数字的每个数字,并将其分配到链接列表中自己的节点。我还需要一次读取文件中的2个大数字,文件中的每个数字用换行符分隔 到目前为止,我将此用于测试目的: inFile.open("file.txt"); inFile >> bigNumber; for(const auto &c : bigNumber) { cout << c << endl;

我有一个非常大的数字文件,不适合int数据类型。我的任务是获取大数字的每个数字,并将其分配到链接列表中自己的节点。我还需要一次读取文件中的2个大数字,文件中的每个数字用换行符分隔

到目前为止,我将此用于测试目的:

    inFile.open("file.txt");
    inFile >> bigNumber;
    for(const auto &c : bigNumber) {
         cout << c << endl;
    }
infle.open(“file.txt”);
填充>>大数字;
用于(常量自动和c:bigNumber){

cout取决于您想做什么:

要将该值作为ascii码读取,可以使用

char c = 'a';
int i = (int) a; 
/* note that the int cast is not necessary -- int i = a would suffice */
要转换字符“0”->0,“1”->1等,可以编写

char c = '4';
int i = a - '0';
/* check here if i is bounded by 0 and 9 */

你正在实现。关于这个主题有很多源材料。我想有更简洁的方法,但廉价和令人高兴的是承认一个字符是一个无符号的短字符,带有你的字符的ASCII值。减去48(ASCII值为0)“你的号码是:”代码“>代码> > char < /COD>不是一个<代码>未签名的短!@ AuiShandTe为澄清而欢呼,解释说明我是愚蠢的/过于简单化的我知道这不是严格的C++,但我认为这是一个使用<代码> ATOI 的好时机。重要的是,减去<代码> '0' < /代码>即使字符集不是“0”->0大小写,也能正常工作。这是转换的“标准”方式吗?
a-'0'
看起来更像是一个“把戏”,而不是阅读此代码的其他程序员显而易见的东西。谢谢您的回复。
a-'0'
很明显!我不担心这一点。