Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C] Acquisizione stringa da file senza conoscerne lunghezza

    Buondì a tutti, ecco il mio quesito:

    se io ho un file contenente delle righe di numeri separati da uno o più spazi e di cui non conosco la lunghezza, come posso fare per acquisirli?

    Mettiamo che il file sia il seguente:

    1 23 5 7 9
    2 3 51 4
    8 9 99 12 0 2

    Avevo pensato di fare un'operazione del genere:
    codice:
        
     char str[40]={0};
        int righe=0, i=0;
        int matrix [righe+1][20];
    
            while(fgets(str, 39, ff)!=NULL){
    
                do{
            sscanf(str, "%d",&matrix[righe][i]);
                i++;}
                while(matrix[righe][i]!='\n');
    
                righe++;}
    Ma ahime, non funziona e penso che sia perchè il sscanf non mi acquisisce '\n'...
    Che algoritmo mi consigliate quindi di usare? Grazie

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

    ciao

    Qualche suggerimento da implementare
    leggi la riga con fgets()
    hai una stringa che termina con il \n , dovresti sostituire il \n con \0 , trovi esempi in rete

    ora hai una stringa di cifre separate da uno o più caratteri spazio , puoi usare strtok() per spezzare la stringa in sottostringhe composte dai "numeri" che vuoi


    http://www.cplusplus.com/reference/cstring/strtok/
    Tecnologia

  3. #3
    Uhm, effettivamente stavo pensando anche io di usare la divisione in token! Appena riesco faccio una prova..
    Grazie

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.