I次のような問題を持っている言葉で文字列を受け取っ 「30,45,33,22 \ n」は、 '\ n'文字を入力した後、コンマで文字列を分割し、各値を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
出力:私はこれらの2つの命令を入れ替えた後
1
0
0
0
0
0
'i!= '\ n" 'これは正しく表示されません。 –