Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    22

    [C] Problema acquisizione stringa

    Salve a tutti,
    passo subito ad una piccola premessa: sto sviluppando un gioco in C servendomi delle librerie ncurses (vorrei evitare però panel.h, menu.h e form.h), ma mi sono appena arenato in una situazione alla quale non riesco a trovare rimedio, o meglio, quasi. Tale gioco è dotato di una classifica con i migliori 10 punteggi e il nome dei relativi giocatori che li hanno realizzati, e le coppie (nome, punteggio) vengono memorizzate in un file "scores". Al termine di ogni partita, se il punteggio totalizzato è più alto del più basso presente in classifica, si apre una finestra in cui viene richiesto l'inserimento del nome del giocatore, al fine di memorizzarlo nel file "scores". Per evitare casini però vorrei evitare che l'utente possa digitare più di 10 caratteri. Questo problema l'ho risolto (o meglio pensavo di averlo risolto) accettando un carattere per volta e inserendolo via via nel vettore di caratteri *name, in questo modo:

    codice:
    char name[10];
    char ch;
    int i=-1;
    wmove(form, 2, 1);
    while(ch=wgetch(form)!='\n'){
       if(ch==' ' || i==10-1){
         wmove(form, 2, 1+(i+1));
         }
       else{
         i++;
         name[i]=ch;
         }
       }
    (form è una WINDOW creata nel main e passata alla funzione in cui è presente questo spezzone di codice)

    In questo modo, effettivamente, arrivato al decimo carattere si ferma, e eventuali altri caratteri vengono scritti nello stesso punto (come volevo), solo che andando poi a vedere, tutti i caratteri della stringa risultano essere ^A.
    Ho verificato (stampando a video la sequenza di caratteri appena digitata) e il problema avviene proprio nell'acquisizione dei caratteri, non nella scrittura sul file o la successiva visualizzazione nella classifica.

    Qualche soluzione?

    Grazie mille

    Massimo

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    22
    Ok problema risolto. L'unica cosa è che adesso se premo backspace mi scrive ^? invece di cancellare l'ultimo carattere digitato. Soluzioni?

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 © 2025 vBulletin Solutions, Inc. All rights reserved.