C - 从字符串中获取CLEAN数字变量

时间:2014-02-02 18:46:25

标签: c bash

我一直在为一个小型LCD项目摆弄一些C编程。

我有一个字符串,在BASH(脚本)中执行,返回0到100之间的值(音量级别) 字符串是这样的:

  

!/斌/庆典

     

amixer获取'DIYINHK时钟选择器',0 | awk'/ [/ {getline;打印$ 5}'| tr -d'[]%'

我需要返回此值,以便我可以在if / else语句中使用它,例如 我认为该值以ascii方式返回?

printf输出正确,例如。当amixer为98时,屏幕上的printf为98 但是在液晶显示器上,有一种_在98之后....就像这样:98_ 它是某种“回归”的价值?

我需要的是一个干净的数字,我可以用作例如。 :

  

if(get_volume< = 30)

     

语句;

     

否则if(get_volume< = 50)

     

语句;

     

否则如果....      .......

这是一个片段:

  

FILE * fpipe;

     

char * command =(char *)“/ home / pi / lcd / get_volume.sh”; // get_volume脚本

     

char line [256];

   if (! (fpipe = (FILE*)popen(command,"r")) )
           {
                   perror("PROBLEMS");
           exit(1);
           }

   while ( fgets( line, sizeof line, fpipe))
     

lcdPosition(lcd,0,0);

     

lcdPrintf(lcd,line); //在LCD上打印输出

     

printf(“\ nline =%s \ n”,line); //在屏幕上打印输出

1 个答案:

答案 0 :(得分:0)

atoi函数将表示数字的字符串转换为int。因此,要获得“干净的数字”,您需要以下内容:

int volume = atoi(line);