在NXC中从文件返回的负值

时间:2014-04-24 12:36:39

标签: string numbers converter nxc

我将值保存到NXC中的.csv文件(非eXactly C),然后在稍后的时间点调用它们。我遇到的问题是当从一个单元格中调用任何负值时,它显示为0123而不是-123,这将抛弃我所有的额外计算。

目前的代码是:

OpenFileRead("map.csv", fSize, count);
  until (eof == true) {
    ReadLnString(count, val);
    int lstFwd = StrToNum(val);
    NumOut(0,LCD_LINE1,lstFwd);
  }
while(true);

任何人都可以解释如何纠正这个问题,因为它现在给我带来了很大的压力。

1 个答案:

答案 0 :(得分:0)

StrToNum应该转换否定数字。有点奇怪,整数以0开头。您还应该使用增强型NBC / NXC固件。

首先:你应该在写一些输出之前先清除屏幕! 使用:

NumOut(0,LCD_LINE1,lstFwd, DRAW_OPT_CLEAR_LINE);

如果问题仍然存在,请尝试:

string val;
OpenFileRead("map.csv", fSize, count);
  until (eof == true) {
    ReadLnString(count, val);
    int lstFwd = StrToNum(val);
    if(SubStr(val, 0, 1) == "-") lstFwd *= -1; // Check if first char is "-"
    NumOut(0,LCD_LINE1,lstFwd, DRAW_OPT_CLEAR_LINE);
  }
while(true);