0
我有以下問題的話收到的字串 「30,45,33,22 \ n」; 我想在輸入'\ n'char並將每個值放入一個int數組後,用逗號分割字符串。問題是我嘗試了strtok和sscanf的組合,它只是不起作用:Arduino的分裂在
#define PARAM_NR 10
Timer tt;
int i=0;
int index=0;
bool stringComplete=false;
char recString[MAX_LEN];
char buf[20];
int commands[PARAM_NR];
void serialEv()
{
char aux;
char *token;
int i=0;
while(Serial.available())
{
aux=Serial.read();
if(i!='\n')
{
recString[i++]=aux;
recString[i]='\0';
}
if(aux=='\n');
{
token=strtok(recString,",");
while(token!=NULL)
{
token=strtok(NULL,",");
sscanf(token,"%d",&commands[index]);
Serial.println(commands[index]);
index++;
if(index==PARAM_NR)
index=0;
break;
}
}
}
}
實施例:
輸入:
1,1,1
輸出:
1
0
0
看起來它只在第一個位置打印1,而在其他位置打印0。 如果我嘗試另一種輸入
例如: 輸入1:
1,1,1
輸入2
3,4,5
輸出:
1
0
0
0
0
0
'我!='\ n''這看起來不正確。 –