我将值保存到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);
任何人都可以解释如何纠正这个问题,因为它现在给我带来了很大的压力。
答案 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);