小编ImS*_*pid的帖子

从char到int的转换确实很奇怪

我正在使用粒子光子制作数字手表+闹钟.我正在使用一个TFT屏幕,我已经绘制了一些数字,我可以增加并改变"数字索引"与我连接到我的Photon的一些按钮 - 目的是设置预定警报的时间.下面的功能是我点击按钮时调用的功能,其参数是我的屏幕上"光标"所在的"数字索引",我可以使用我的按钮导航.这工作正常,直到9 - 我的屏幕开始显示ASCII表情和其他字母而不是数字.我尝试了一个if语句,当变量temp高于9时,它被设置为0 - 这是我最终想要实现的.这不起作用,并且当它超过9时它一直显示ASCII字母.然后我决定尝试在按钮点击时将temp打印到控制台,但是它打印的第一个字母是49而不是0?什么??

我不太喜欢C/C++,但我确实有一种预感,在我增加temp之前,我正在从char数组timeSet转换错误.你们有什么感想?

void replaceDigitFromIndex(int selectorIndex) {
    tft.setTextSize(4);
    tft.setTextColor(ST7735_RED);
    tft.setCursor(4, 20);
    tft.print(timeSet);

    int temp = 0;

    if(selectorIndex == 1) {
        temp = (int) timeSet[0];
        temp++;
        timeSet[0] = (char) temp;
    }

    if(selectorIndex == 2) {
        temp = (int) timeSet[1];
        temp++;
        timeSet[1] = (char) temp;
    }

   if(selectorIndex == 3) {
        temp = (int) timeSet[3];
        temp++;
        timeSet[3] = (char) temp;
   }

   if(selectorIndex == 4) {
        temp = (int) timeSet[4];
        temp++;
        timeSet[4] = (char) temp;
    }

}
Run Code Online (Sandbox Code Playgroud)

c++ embedded

1
推荐指数
1
解决办法
107
查看次数

标签 统计

c++ ×1

embedded ×1