String NXC中文件返回的负值

String NXC中文件返回的负值,string,numbers,converter,nxc,String,Numbers,Converter,Nxc,我将值保存到NXCNot C中的.csv文件中,然后在稍后的时间点调用它们。我遇到的问题是,当从一个单元格中调用任何负值时,它显示为0123,而不是-123,这会使我的所有附加计算中断 目前的代码是: OpenFileRead("map.csv", fSize, count); until (eof == true) { ReadLnString(count, val); int lstFwd = StrToNum(val); NumOut(0,LCD_LINE1,l

我将值保存到NXCNot C中的.csv文件中,然后在稍后的时间点调用它们。我遇到的问题是,当从一个单元格中调用任何负值时,它显示为0123,而不是-123,这会使我的所有附加计算中断

目前的代码是:

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

谁能解释一下如何纠正这个问题,因为它现在给我带来了很大的压力。

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

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

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

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);
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);