Visualizzazione dei risultati da 1 a 10 su 12

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di torn24
    Registrato dal
    Aug 2008
    Messaggi
    551

    Ciao

    Ciao , ho voluto provare il tutto su IDE arduino , e mi presenta un messaggio che string non è un parametro valido per la funzione int() , dalla chiara documentazione fornita ,quando ho trovato scritto che il parametro di int() poteva essere di qualunque tipo ho immaginato potesse essere anche di tipo String

    Propongo una soluzione alternativa ..... , da verificare se funziona o meno .

    codice:
    String orario =rtc.getTimeStr();
    
    
    char buffer[10];
    char tmp[3];
    orario.toCharArray(buffer, 10);
    strncpy(tmp,buffer,2);
    int ora=atoi(tmp);
    strncpy(tmp,buffer+3,2);
    int minuti=atoi(tmp);
    strncpy(tmp,buffer+6,2);
    int secondi=atoi(tmp);
    Ultima modifica di torn24; 17-06-2014 a 09:00
    Tecnologia

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Quote Originariamente inviata da torn24 Visualizza il messaggio
    Propongo una soluzione alternativa ..... , da verificare se funziona o meno .
    Probabilmente no dato che strncpy non setta il terminatore della stringa (che comunque puoi settare manualmente all'inizio).
    Le regole fondamentali del pseudo C/C++ di arduino sono uguali a quelle di C/C++, in particolare
    codice:
    int ora=int(orario.substring(0,2));
    è equivalente a
    codice:
    int ora=(int)orario.substring(0,2);
    ed ecco spiegato il tuo errore.

    Ad ogni modo basta una singola sscanf (che dovrebbe essere supportata da arduino).
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.