C -获取ASCII值而不是实际数字

6ojccjat  于 2023-03-22  发布在  其他
关注(0)|答案(1)|浏览(95)

我试图从一个包含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++;
    }

先谢了。

juzqafwq

juzqafwq1#

fgets读取一行文本,因此每个字节包含所读取字符的字符代码。
你可以通过从每个字符中减去字符'0'的代码来得到字符所代表的数字。这将给予你从0到9的值。

grid[x][y] = buffer[x] - '0';

当然,这是假设你读入的字符串只包含十进制数字。如果不是这样,你需要添加额外的验证。

相关问题