Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 17 su 17

Discussione: [c++] puntatori

  1. #11
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    107
    per concatenare due char cosa devo usare??
    va bene:
    char *strncat( char *strDest, const char *strSource, size_t count );
    ??

  2. #12
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    107
    ciao!

    sto provando a concatenare due char ma ci sono cose che non capisco..
    questo e' quello che ottengo in un ciclo in cui incremento ogni volta pBuffer (pBuffer = pBuffer + 2):

    dove il 'tot' che stampo e' cosi' definito:
    cout << "tot: " << strncat( pBuffer, (pBuffer+1), 1) << endl;


    *pBuffer: é
    *(pBuffer+1): ¹
    tot: é¹ò¹3¹þ¹0³∟²é²&²Ë■Á_°·¹¹¹¹
    Premere un tasto per continuare . . .
    *pBuffer: ò
    *(pBuffer+1): ¹
    tot: ò¹3¹þ¹0³∟²é²&²Ë■Á_°·¹¹¹¹¹
    Premere un tasto per continuare . . .
    *pBuffer: 3
    *(pBuffer+1): ¹
    tot: 3¹þ¹0³∟²é²&²Ë■Á_°·¹¹¹¹¹¹
    Premere un tasto per continuare . . .
    *pBuffer: þ
    *(pBuffer+1): ¹
    tot: þ¹0³∟²é²&²Ë■Á_°·¹¹¹¹¹¹¹

    io mi aspettavo solo i primi due caratteri.. cioe':

    *pBuffer: é
    *(pBuffer+1): ¹
    tot: é¹
    Premere un tasto per continuare . . .
    *pBuffer: ò
    *(pBuffer+1): ¹
    tot: ò¹
    Premere un tasto per continuare . . .
    *pBuffer: 3
    *(pBuffer+1): ¹
    tot: 3¹
    Premere un tasto per continuare . . .
    *pBuffer: þ
    *(pBuffer+1): ¹
    tot: þ¹

    dove sbaglio?? e' un caso che *(pBuffer+1) sia sempre uguale a ¹??
    grazie!

  3. #13
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    Originariamente inviato da raphi01
    per concatenare due char cosa devo usare??
    va bene:
    char *strncat( char *strDest, const char *strSource, size_t count );
    ??


    cosi puoi concateneare PUNTATORI a char
    ovvero stringhe ...

    non puoi concatenare un singolo carattere
    cosi ma una stringa di 1 carattere al max!

  4. #14
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    107
    per registrare i campioni dalla scheda audio uso una funzione che mi mette in una lista di buffer gli elementi 'lpData' definiti nella struttura 'WAVEHDR'.
    per leggere i campioni prendo la lista e copio tutto il contenuto in uno spazio di memoria di cui poi conosco 'char* pBuffer', puntatore alla prima cella di memoria che contiene i dati che mi servono..
    pero' devo leggere i campioni come int percio' dovrei considerare (da pBuffer in poi) gruppi di due char per volta e convertirli in int..
    ..mhmm la spiegazione non e' ancora un granche', vero??..

  5. #15
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    107
    ..e' per questo che volevo concatenare due caratteri, non una stringa (sigh), per poi convertire il risultato in int..

  6. #16
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    char stringa [20];
    char primo = 'F', secondo = 'x';
    int len;

    len = strlen( stringa );

    stringa [len-1] = primo;
    stringa [len] = secondo;
    stringa [len+1] = '\0'; /* chiudo */

  7. #17
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    107
    ..ho fatto cosi':

    char stringa [2];
    stringa [0] = pBuffer[0];
    stringa [1] = pBuffer[1];
    stringa [2] = '\0';

    cout << "stringa: " << stringa << endl;
    cout << "stringa: " << atoi( stringa ) << endl;

    in questo modo riesco a mettere insieme i due char ma non riesco a convertire in int.. ho sempre 0 tranne quando pBuffer[0] e' un numero.. in quel caso atoi( stringa ) e' uguale a quel numero..
    questo e' quello che stampo a video:

    ...
    Premere un tasto per continuare . . .
    pBuffer[0]: R
    pBuffer[1]: ¨
    stringa: R¨
    stringa: 0
    stringa: 0
    Premere un tasto per continuare . . .
    pBuffer[0]: 1
    pBuffer[1]: ¨
    stringa: 1¨
    stringa: 1
    stringa: 1
    Premere un tasto per continuare . . .
    pBuffer[0]: m
    pBuffer[1]: °
    stringa: m°
    stringa: 0
    stringa: 0
    Premere un tasto per continuare . . .
    ...

    perche' mi esce sempre 0?? come faccio a convertirlo in int??
    grazie ancora (anche per la pazienza)

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.