C / C ++ - “否定”字符串转换为零

时间:2017-05-08 06:02:24

标签: c++ strtok

我有以下.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, " {},");
        }
    }

有没有更好的方法来提取数字,一次一个?怎么样?

1 个答案:

答案 0 :(得分:4)

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

  • this - 是ASCII减号
  • 这是 - 你的角色whixh可能被称为&#34;减号&#34;通过Unicode,但它通常不被C ++库函数识别

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