Leggere una riga precisa di un file txt

di il
4 risposte

Leggere una riga precisa di un file txt

Salve (sto imparando a programmare in c++).
Vorrei sapere come faccio a far leggere una riga precisa da un file txt, ad esempio:

int riga
cout<<"scegli la riga: ";
switch(riga){
case 1: (leggi la riga 1)

case 2: (leggi la riga 2)

e così via...



Il programma per ora è:
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    FILE * file;
    char riga1[100];
    file = fopen("C:\\Users\\snico\\Documents\\c++\\leggere_scrivere_txt\\esercizio_esecuzione_su_file_txt\\esercizio.txt", "r");

    if(!file){
        cout<<"ERRORE NELL'APERTUTA DEL FILE"<<endl;
        return 1;
    }

        fgets(riga1, 100, file);
        cout<<riga1<<endl;
        fclose(file);


    return 0;
}

Ma in questo modo mi legge solo la prima riga e se uso il ciclo while(!feof) mi legge tutto il file...


Per imparare mi faccio questi esercizietti.

Grazie.

4 Risposte

  • Re: Leggere una riga precisa di un file txt

    1) il C++ e' una PESSIMA scelta per imparare a programmare. Esistono alternative infinitamente migliori
    2) se devi leggere le riga 100, visto che non ci puoi andare direttamente, semplicemente leggi le prime 99 e le scarti
    3) NON SI IMPARA a programmare studiando un linguaggio di programmazione.

    E' come voler imparare a guidare salendo direttamente su un'automobile ed immetendosi nel 'Grande Raccordo Anulare' di Roma.
    Suicidio assicurato

    https://it.m.wikipedia.org/wiki/Autostrada_A9

    Nota: FODAMENTALMENTE non sai che cosa e' un CICLO, una delle TRE strutture di controllo FONDAMENTALI, senza le quali semplicemnte NON SI PUO' programmare.

    Visto che ci sono 5/6 concetti FONDAMENTALI da CONOSCERE ALLA PERFEZIONE, forsee' il caso di acquistare un libro di introduzione alla programmazione.
  • Re: Leggere una riga precisa di un file txt

    Ti chiedo scusa ma la mia domanda era un'altra.
    Non ho iniziato ieri a programmare quindi un po di cose le so.
    Il perché ho iniziato a programmare in c++ è un problema mio.

    Quindi ti ringrazio veramente per i tuoi consigli, mi saranno utili sicuramente, ma vorrei sapere in che modo posso fare quello che voglio fare.

    grazie.
  • Re: Leggere una riga precisa di un file txt

    Non concordo, C++ è una eccellente scelta per imparare a programmare accompagnati da una buona guida. La libreria standard è enorme e mette a disposizione un sacco di utilità facilmente accessibili.

    Tra queste utilità, definita proprio in <fstream>, c’è std::ifstream. Quindi non comprendo assolutamente perché mai dovresti utilizzare FILE * al suo posto, anzi stai mescolando tipi di programmazione inutilmente.
    Oltre al fatto che esiste std::string (definita in <string>)…

    Se vuoi utilizzare tecniche C-type… beh allora usa C e non C++.

    Il che, per leggere una linea da file, diverrebbe [CODE] std::ifstream input(FILE_PATH); std::string line; std::getline(input, line); … input.close(); Per il resto fai come detto da migliorabile, se vuoi leggere la 4° riga, ad esempio, leggi le prime 4 righe.

    PS: per gli errori usa std:cerr e non std::cout, anche se normalmente scrive sempre su STDOUT
  • Re: Leggere una riga precisa di un file txt

    anonimo ha scritto:


    Quindi ti ringrazio veramente per i tuoi consigli, mi saranno utili sicuramente, ma vorrei sapere in che modo posso fare quello che voglio fare.
    Comunque, mi pare che tu abbia avuto la risposta ....
Devi accedere o registrarti per scrivere nel forum
4 risposte