Pagina 1 di 6 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 57
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    161

    [C++] Estrarre righe da file txt

    Ciao a tutti.
    Qualcuno di voi conosce una funzione che mi permette di leggere una determinata riga in un file txt? ho sentito parlare di "getline" ma credo che serva solamente per il numero di caratteri o qualcosa del genere, poi anche di fscanf che però non so nemmeno a cosa serva....
    Qualcuno di voi può aiutarmi?
    grazie in anticipo
    ps. naturalmente le righe dopo dovrei memorizzarle come stringhe. Per riga intendo 1 frase dopo la quale va a capo.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Classe ifstream, metodo getline().

    Un piccolo esempio:
    codice:
    #include <iostream>
    #include <fstream>
    using namespace std;
    
    int main () {
    
       ifstream mioFile;
       int numLinea = 0;
       char linea[1024];   // Suppongo che le linee non siano più lunghe di 1024 caratteri
    
       mioFile.open ("test.txt", ifstream::in);
    
       while( mioFile.good() ) {
          numLinea++;
          mioFile.getline(linea, 1024);
          cout << "Linea n. " << numLinea << ": " << linea << endl;
       }
    
       mioFile.close();
    
       return 0;
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    161
    ok ma se io volessi ad esempio prendere solamente la linea n° 34? non c' è una funzione per leggere una determinata riga?
    grazie tante in anticipo

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    No ... devi contarle e fermarti quando la trovi ...

    Questo se le righe sono a lunghezza varaibile ... se sono a lunghezza fissa, allora puoi arrivarci direttamente ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    161
    in che senso? devo scorrere tutte le righe? fino a quella che mi interessa?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Esatto.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Per saltare una riga invece di leggerla usa adeguatamente il metodo ignore().
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    161
    quindi andrebbe bene una cosa di questo genere?
    codice:
    #include <iostream>
    #include <stdio.h>
    int main {
    int riga = 6;
    char frase[300];
    FILE *testo;
            testo = fopen("C:percorso\\testo.txt","r");
    for (cont=1 ; vmax=6 ; i++) {
    testo.getline(frase, 300)}
    printf ("La frase è questa:\n %s", frase[300]);
    }

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Sapresti commentare quello che hai scritto nella for ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    161
    si mi sono sbagliato..
    era
    codice:
    for (cont=1 ; vmax=6 ; cont++) {
    testo.getline(frase, 300)}
    ma comunque io sto usando dev c++ e mi da questo errore come mai?
    codice:
    main.cpp: In function `int main()':
    main.cpp:13: error: `getline' undeclared (first use this function)
    main.cpp:13: error: (Each undeclared identifier is reported only once for each function it appears in.)
    main.cpp:15: error: `close' has not been declared
    main.cpp:15: error: request for member of non-aggregate type before '(' token
    main.cpp:18: error: expected `;' before '}' token
    
    make.exe: *** [main.o] Error 1
    
    Esecuzione terminata
    Grazie tante per il tuo interessamento!!

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.