Advertisement
TolentinoCotesta

strtok test

Jun 11th, 2018
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //------------------------------------------------------------------------  
  2. while (Serial.available()) {        
  3.     char inChar = Serial.read();
  4.     serialInput += inChar;    
  5.      
  6.     // quando ricevo il carattere di fine linea, significa che ho ricevuto tutto
  7.     if (inChar == '\n') {
  8.    
  9.       char * pch;      
  10.       Serial.print("Ho ricevuto: ");
  11.       Serial.println(serialInput);
  12.      
  13.       // troviamo il primo "token" poi cerchiamo i successivi con un ciclo while      
  14.       pch = strtok ((char*)serialInput.c_str(), " ,");      
  15.      
  16.       for( unsigned int cont = 0; cont<3; cont++){
  17.         // salto il primo "," e troviamo i token successivi
  18.         pch = strtok (NULL, " ,");
  19.         // converto la stringa in intero e la salvo nell'array numeri
  20.         // Se la conversione non è possibile il risultato sarà 0
  21.  
  22.         // L'istruzione che genera l'eccezione è atoi() quando non c'è una stringa valida nella variabile pch.
  23.         // Per evitare questo problema, andiamo a controllare pch prima di tentare la conversione,
  24.         // se pch è vuoto interrompo il ciclo for con l'istruzione break e continuo con il resto del programma.
  25.         int n = 0;
  26.         if(pch != NULL)
  27.           n = atoi(pch);
  28.         else
  29.           break;      
  30.        
  31.         values[cont] = n;    
  32.         Serial.print("Valore n° ");
  33.         Serial.print("punto 4-");
  34.         Serial.print(cont);
  35.         Serial.print(": ");
  36.         Serial.println(values[cont]);
  37.       }      
  38.       serialInput = "";
  39.      
  40.     }
  41.   }
  42. //-----------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement