Visual studio code non mi legge i file ifstream

di il
7 risposte

Visual studio code non mi legge i file ifstream

Sto imparando ora a programmare, nello specifico c++, ho gia scritto svariati programmi alcuni dei quali prevedevano la letture di file esterni di tipo .txt e sono sempre andati.Avendo avuto dei problemi con il debbugger avevo disinstallato e ri-installato Visual studio code e Ubuntu dato che lo utilizzavo tramite WSL e da quel momento in poi non legge piu gli altri file ifstream correttamente, nel senso che mi segna i numeri come 0 o 1 e gli altri caratteri con questo simbolo “?” quando eseguo il programma.
Non capisco se è qualcosa di sitemabile dalle impostazioni o se mi sono perso qualcosa quando l'ho ri-installato, grazie a chiunque mi darà una mano.

7 Risposte

  • Re: Visual studio code non mi legge i file ifstream

    Purtroppo non si e' capito “na cippa”.

    Visual Studio Code, fondamentalmente, e' un “editor agli steroidi” nel senso che potresti usare anche Notepad e andrebbe bene lo stesso.
    Lui, con i problemi con istream, centra nello stesso modo in cui centri tu con una “supermodella” ;-)
    Nulla, nisba, niet, nada, …

    Uno “ifstream” e' un oggetto per leggere file “binari” e NON caratteri.
    La lettura dei caratteri da un file binari richede tutta una serie di accorgimenti, uno dei quali e' SPECIFICARE l'encoding con cui e' scritto il file di TESTO.
    SE leggi un file BINARIO, QUALUNQUE si l';encoding otterai sempre “schifezze”

    SE leggi un file DI TESTO con l'encoding SBAGLIATO, dovrebbe fare pasticci SOLO sulle accentate.
    Dico dovrebbe, perche' anche l'encoding e' un mondo.

    Quindi, riassumendo, 

    che stai combinando???

  • Re: Visual studio code non mi legge i file ifstream

    Ho specificato che sto usando Visual Studio Code solo per contestualizzare,comunque non è questo il punto.
    Come encoding sto usando il suo predefinito ovvero UTF-8 ma ho provato anche con UTF-8 con BOM dopo aver letto la documentazione a riguardo sul sito di Microsoft, ma visto quello che mi dici dubito che sia quello il problema e dubito che sia una semplice impostazione da correggere dunque, visto anche che il file da leggere è un normalissimo file di testo creato anch'esso in visual studio (sempre per contestualizzare).

    Per il resto non ti so dire altro,mi rendo conto di essere ignorante in materia ma è il motivo per cui ho chiesto aiuto in questo forum, sperando che fosse un problema piu facilmente interpretabile.

  • Re: Visual studio code non mi legge i file ifstream

    Ignorante va bene ma le basi le devi avere.

    Prima di tutto perché scrivi nell'area Windows e non nella sezione C/C++?

    E perché non mostri il codice che hai scritto e che non va?

    Somiglia a qualcosa del genere?

    std::ifstream file("my_file");
     std::string temp;
     while(std::getline(file, temp)) {
          //Do with temp
     }
  • Re: Visual studio code non mi legge i file ifstream

    Ma ripeti la stessa risposta di prima?

  • Re: Visual studio code non mi legge i file ifstream

    Scusa ho ricaricato la pagina e non mi sono accorto che stava mandando nuovamente il messaggio precedente,comunque non capisco cosa ti abbia portato a pensare che non “abbia le basi” mi pare piuttosto che non si riesca a inquadrare bene il problema.

    Il codice te lo posso anche inviare, ma non è quello il problema ne sono sicuro perche è un programma banalissimo ed è il motivo per cui non scrivo nella sezione C/C++  ovvero che appunto non è un problema di codice, ripeto ho gia fatto programmi che prevedevano la lettura di altri file e sono sempre andati e tutt'ora vanno e sottolineo tutt'ora perchè questo mi conferma che non è l'encoding sbagliato, e in realtà dubito che sia una soluzione “semplice” come appunto cambiare encoding, speravo semplicemente che qualcuno magari avendo gia affrontato questo problema fosse in grado intuirne il motivo.

    #include <fstream>
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int n, a;
        char c;
        ifstream inFile("esprova.txt");
    
        inFile >> n;
        inFile >> c;
        inFile >> a;
    
        cout << endl
             << n << " " << a << c;
    
        inFile.close();
    
        return 0;
    }
  • Re: Visual studio code non mi legge i file ifstream

    Il codice che hai postato dovrebbe funzionare.

    Non è che hai sbagliato il nome del file, tipo “eprova.txt”, che l'hai chiamato “.txt.txt”, che hai sbagliato percorso o cose del genere?

    Aggiungi il file alle risorse del progetto e controlla che il file sia stato aperto davvero, tipo

        int n = 999, a = 888; // valori dummy
        char c = 'c';
        ifstream inFile("esprova.txt");
    
        if (!inFile) {
            cout << "errore";
            return -1;
        }
  • Re: Visual studio code non mi legge i file ifstream

    Inserisci il percorso assoluto c:\\cartella\\file.txt

Devi accedere o registrarti per scrivere nel forum
7 risposte