C/C++ - "Negative" 字符串转换为零

C/C++ - "Negative" string converted to zero

我有以下 .txt 文件:

{{1,2,3,0}, {1,1,1,2}, {0,−1,3,9}}

这是一个 3x4 矩阵。我正在使用 strtok 提取数字并保存在 float 矩阵上。问题是,当 p 得到 -1 时,它在保存在矩阵上时被转换为零。我该如何解决?

    p = strtok(&matrix[0u], " {},");

    for (i = 0; i < m + 1; i++){
        for (j = 0; j < n + 1; j++) {
            aux[i][j] = atoi(p);
            if (p)
                p = strtok(NULL, " {},");
        }
    }

是否有更好的方法一次提取一个数字?怎么样?

你的减号不起作用。比较:

  • 这是 ASCII 减号
  • 这 − 是您的字符 whixh 可能会被 Unicode 调用 "minus sign",但 C++ 库函数通常不会这样识别它

不要从 Word 文档等地方复制代码。如有疑问,请使用 iconv 或类似实用程序转换为 ASCII。