我试图从一个包含0或1的文件中读取数据,如下所示:
0000100000
0000100000
0000100000
0000100000
我想把每一个数字存储在一个2d整型数组中。问题是,当我试图在2d数组中保存0或1时,我总是得到48或49。我的代码看起来像这样:
while (fgets(buffer, INT_MAX, pF) != NULL)
{
for (int x = 0; x < gridW; x++)
{
grid[x][y] = buffer[x];
}
y++;
}
先谢了。
1条答案
按热度按时间juzqafwq1#
fgets
读取一行文本,因此每个字节包含所读取字符的字符代码。你可以通过从每个字符中减去字符
'0'
的代码来得到字符所代表的数字。这将给予你从0到9的值。当然,这是假设你读入的字符串只包含十进制数字。如果不是这样,你需要添加额外的验证。