Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    152

    [c++] trasformazione di una stringa in un array di valori.

    Salve a tutti,
    avrei un problemino con il seguente codice:

    void Open(char *pippo)
    {
    char ch;
    ifstream in(pippo);
    while(in){
    in.get(ch);
    cout << ch;}
    in.close()
    }

    l'otput è questo
    asb 10 asc 20 asv 30 asn 2

    Come posso trasformare questa sequenza in un array che contiene solo i valori numerici {10,20,30,2}????
    Grazie a tutti per l'aiuto
    andry80

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Io ti direi innanzitutto di leggere dal file singole parole ad esempio con

    cin >> s;

    dove s è una string; poi puoi trasformare la stringa in numero ad esempio con il metodo atoi invocato sull'array di caratteri che rappresenta la stringa; la trasformazine la effetui solo sulle stringhe che iniziano con un carattere numerico. Comunque dipede da come è formattato il file da cui leggi; se sei sicuro che si alternano stringhe e numeri ad esempio puoi evitare il controolo del primo carattere.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    152
    in realtà non si alternano sempre una parola ed un numero ma a me servirebbe semplicemente un metodo che mi permetta , come fa lo split in c#, di usare lo spazio ' ' come delimitatore per creare un array.
    andry80

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    152
    Mi va bene, come risultato, anche un array di questo tipo:
    char ch[] = {abs,5,ase,20,30};

    perchè in realtà a me servono solo alcuni valori ,i cui indici sono fissi.
    Nell'esempio precedente a me serve estrapolare solo i 2 valori 5 e 20
    cioè ch[1] e ch[3] che poi con l'ATOI trasformerò in valori interi.

    Grazie
    andry80

  5. #5
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Se sai che una riga del file non contiene piu di n stringhe dichiara un array di n string e leggi le varie string con cin >>

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    152
    e se non conosco il numero di stringhe??
    andry80

  7. #7
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Se a te interessano tutte le stringhe te le puoi accumulare in una lista che implementi a mano o puoi utilizzare un vector o una deque per inserire le stringhe

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    152
    Scusami ma mi sono un po perso.
    IO devo leggere in un file:
    ifstream ins("test");

    devo poi leggere ogni riga di questo file (e so che ogni riga è del tipo :"prova 12" , quindi con 2 parole separate dallo spazio centrale), e devo prendere,trasformandolo in un intero, il valore più esterno, in questo caso 12.
    andry80

  9. #9
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    se devi leggere il secondo elemento di ogni riga basta fare un ciclo con le seguenti operazioni:

    string s;
    innn >> s;
    int x;
    innn >> x;


    all'interno di x ti trovi l'intero e puoi metterlo dove vuoi.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    152
    Grazie
    Ora provo così
    andry80

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.