从文本文件C ++中读取数字

时间:2013-06-14 17:31:06

标签: c++ cin

我在文件中有一个代码,它看起来像

  

73167176531330624919225119674426574742355349194934 96983520312774506326239578318016984801869478851843 85861560789112949495459501737958331952853208805511

等共20行。我想要做的是从文本文件中读取每两位数字并将它们放入一个整数数组(一个元素=两位数)。如何从该文本文件中按时间只读取两位数,而不是整行?

2 个答案:

答案 0 :(得分:4)

嗯,你可以先读取整行,然后一次将它分成两位数。或者你可以简单地使用

char twodigits[2];
twodigits[0] = fin.get();
twodigits[1] = fin.get();

答案 1 :(得分:1)

除了Mats Petersson的回答:

char twodigits[2];
int integerr;
twodigits[0] = fin.get() - '0'; // convert from ASCII
twodigits[1] = fin.get() - '0'; // convert from ASCII
integerr = twodigits[0] * 10 + twodigits[1];

此外,您还需要跳过行尾字符。这还取决于您所在的平台--Windows,Linux,Mac,因为这三个平台都有不同的EOL。

EOL字符为0x0A和0x0D组合,而数字为0x30及以上,因此您可以将其用于检测。我留给你去探索。