-1

I have a code in a file and it looks like

73167176531330624919225119674426574742355349194934 96983520312774506326239578318016984801869478851843 85861560789112949495459501737958331952853208805511

and etc. 20 lines in total. What I want to do is to read every two digit from the text file and put them into an array of integers(one element = two digits). How can I read only two digits by time from this text file, not the whole line?

4

2 回答 2

4

好吧,您可以先阅读整行,然后一次将其拆分为两位数。或者你可以简单地使用

char twodigits[2];
twodigits[0] = fin.get();
twodigits[1] = fin.get();
于 2013-06-14T17:34:17.123 回答
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 及以上的组合,因此您可以使用它进行检测。我把它留给你去探索。

于 2013-06-14T17:48:06.513 回答