C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了有关C(与LCD连接)的itoa()和char数组问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
尽力做到简短;我正在尝试编程LCD以打印出一个整数变量(超过1位).我正在尝试使用itoa函数执行此操作,因为LCD采用ASCII字符.下面的代码在我想要的时候编译并打印“Set Temp:”,问题是它不会像我想要的那样打印出存储在numberString数组中的字符(数字). writeString函数工作正常,但我无法弄清楚为什么它不会在“Set Temp:”之后打印int setTemp的值.所有输出的是:“设置温度:”光标刚挂.

可能值得一提的是光标悬挂在LCD上应该打印值的位置,表明它不仅仅是打印空值,而是根本不打印任何东西或等待某些东西.

对任何不正确的问题格式表示抱歉,我是新的.

void writeChar(unsigned char ch)
{
  lcd = ch;
  RS = 1;
  RW =0;
  E = 1;
  lcdDelay();
  E=0;
}

void writeString(char *StringToLcd)
{
  while(*StringToLcd > 0)
  {
    writeChar(*StringToLcd++);
  }
}



int changetriggTemp(void)
{
  char numberString[4]; //buffer,-99 -> 99
  int setTemp = 50;

  clearDisplay();
  writeString("Set Temp: ");

  itoa(setTemp,numberString,10);
  lcdDelay();

  writeString(numberString);

  while(1); //placeholder before I return thE int I want

}
@H_301_18@@L_675_6@
如果没有定义函数原型,编译器可能会对它做出错误的假设,并错误地编写它的使用.引起你的注意,我问了定义是什么,因为通常的定义(至少在MSVC中)是

char *itoa(int value,char *str,int radiX);

这同意你自己对该功能的使用,

itoa(setTemp,10);

但是,仔细检查您的库头文件后,您声明它定义了

itoa(char * buf,int val,int basE);

换句话说,前两个参数被切换.由于itoa()不是标准函数,因此允许这样做,但您必须相应地调用它:

itoa(numberString,setTemp,10);

(感谢@Eric,他们的建议显示它可能是错误的itoa).

大佬总结

以上是大佬教程为你收集整理的有关C(与LCD连接)的itoa()和char数组问题全部内容,希望文章能够帮你解决有关C(与LCD连接)的itoa()和char数组问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。