Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    35

    [c++] problema con la manipolazione di file

    salve a tutti, mi servirebbe aiuto per capire cosa c'è che non va in questo programma:
    codice:
    #include<iostream>
    #include<fstream>
    using namespace std;
    main(){
    ofstream fout("text.txt");
    fout<<"45 56";
    fout.close();
    if stream fin("text.txt");
    fin>>a>>b;
    fin.close();
    cout<<b;
    system("pause");
    return 0;
    }
    io uso Dev-C++ 4.9.8.0 e se lo eseguo mi viene segnalato questo errore : "parse error before `fin'" e mi si evidenzia questa riga di codice
    codice:
    if stream fin("text.txt");
    sapete dirmi dove ho sbagliato???
    grazie a tutti
    saluti

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    35
    aggiungo inoltre che l'output di questo programmino è 56, infatti tutto il codice è un esempio che ho trovato in internet per capire come funzionano i file in c++.

    colgo inoltre l'occasione per chiedere se qualcuno mi sa dare una spiegazione a questa riga di codice:
    codice:
    int n=33;
    int& r=n;
    perchè non riesco a capire cosa fa. grazie ancora!!!

  3. #3
    Utente di HTML.it L'avatar di newbie
    Registrato dal
    Dec 2005
    Messaggi
    299
    Per quanto riguarda il syntax error, credo che "if stream" vada scritto senza lo spazio (ifstream è un tipo di dato, che indica uno stream di input basato su file).
    La faccenda della & mi è abbastanza nuova, ma è piuttosto accattivante. Trovi qualcosa a propositoqui.
    Praticamente, in C++ esistono i "riferimenti", che sostituiscono i puntatori, ma permettono di fare cose molto più interessanti (o meglio, terrificanti! VVoVe: ). Ad esempio, supponendo di creare una variabile intera accessibile tramite puntatore,

    Nel tuo caso, le due righe dovrebbero essere equivalenti a
    codice:
    int n = 33;
    int *r = &n;
    codice:
    int n = 33;
    int& r = n;
    //r si può trattare praticamente come un int
    r = 44;
    //ora anche n = 44  :oVVoVe:
    Svegliati, Neo. Matrix ti possiede...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    35
    t ringrazio 1 casino newbie! il link mi torna molto utile, grazie ancora.
    xò x quanto riguarda l'esempio in se, il 44 non centra.
    te lo scrivo tutto:
    codice:
    //determinare l'output
    
    int n=33;
    int& r=n;
    --n;
    cout<<r;
    
    //soluzione: 32
    questi sono esercizietti del cacchio che ci danno al corso di ingegneria informatica, che servono solo a farti beccare dei gran guzzi e nn ti insegnano niente!!!
    guarda questo invece:
    codice:
    //determinare l'output
    
    int n=33;
    int& r=n;
    cout<<(&r==&n);
    
    //soluzione: 1
    sai spiegarmi xchè salta fuori 1??? se c riesci 6 il Dio indiscusso d C++

  5. #5
    Utente di HTML.it L'avatar di newbie
    Registrato dal
    Dec 2005
    Messaggi
    299
    guarda questo invece:
    codice:
    //determinare l'output
    
    int n=33;
    int& r=n;
    cout<<(&r==&n);
    
    //soluzione: 1
    sai spiegarmi xchè salta fuori 1??? se c riesci 6 il Dio indiscusso d C++
    In questo sito ho trovato la risposta:

    "A reference to a variable is another variable (another name) for the same address. References are basically synonyms."

    C'è da mettersi le mani nei capelli! In pratica, dichiarando r, hai creato un... sinonimo di n, nel senso che, da quanto ho capito, i riferimenti in C++ si usano come i puntatori ma non lo sono: sono dei veri e propri sinonimi. Con i puntatori avresti due variabili di tipo diverso (n intera, e r puntatore), mentre con i riferimenti hai proprio VVoVe: due nomi per la stessa variabile VVoVe:
    Nel tuo caso, quindi, r e n rappresentano la stessa variabile, e quindi hanno lo stesso indirizzo o, se preferisci, indirizzi uguali.

    Credo quia absurdum.
    Svegliati, Neo. Matrix ti possiede...

  6. #6
    Originariamente inviato da folk3n
    t ringrazio 1 casino newbie! il link mi torna molto utile, grazie ancora.
    xò x quanto riguarda l'esempio in se, il 44 non centra.
    te lo scrivo tutto:
    codice:
    //determinare l'output
    
    int n=33;
    int& r=n;
    --n;
    cout<<r;
    
    //soluzione: 32
    questi sono esercizietti del cacchio che ci danno al corso di ingegneria informatica, che servono solo a farti beccare dei gran guzzi e nn ti insegnano niente!!!
    guarda questo invece:
    codice:
    //determinare l'output
    
    int n=33;
    int& r=n;
    cout<<(&r==&n);
    
    //soluzione: 1
    sai spiegarmi xchè salta fuori 1??? se c riesci 6 il Dio indiscusso d C++
    Nulla di trascendentale (&r==&n) mostra il risultato
    della comparazione dei rispettivi indirizzi di 'r' e 'n'
    che nel tuo caso puntano alla stessa varibile, quindi è
    logico che il risultato sia 1 (true).
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    35
    si effettivamente hai ragione Samuele_70, non è eccessivamente complicato. quello che non capisco è la differenza tra
    codice:
    int& r=n;
    e
    codice:
    (&r==&n)
    io l'ho capito così:
    in
    codice:
    int& r=n;
    & è usato per creare un riferimento a n, quindi qls modifica fatta su n si riperquote su r e viceversa, mentre invece
    codice:
    (&r==&n)
    in questo caso con & indica l'indirizzo di memoria di r e di n, e fa il paragone. è così???

  8. #8
    Utente di HTML.it L'avatar di newbie
    Registrato dal
    Dec 2005
    Messaggi
    299
    Risposta eeeeeeeeesatta!

    Post come questi dimostrano che non si finisce mai di imparare... fino ad ora conoscevo solo i puntatori.
    Svegliati, Neo. Matrix ti possiede...

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    35
    spettacolo!!! finalmente l'ho capito...cmq ne ho tantissimi d sti esempietti contorti e da quel che ho visto sono dei rompicapo anche per gente che macina già un pò di c++ stai pur sicuro che ne posterò altri xchè avrò sicuramente bisogno di un ulteriore aiuto
    grazie ancora...siete stati chiari e veloci nel rispondere
    saluti

  10. #10
    Utente di HTML.it L'avatar di newbie
    Registrato dal
    Dec 2005
    Messaggi
    299
    grazie ancora...siete stati chiari e veloci nel rispondere
    saluti
    Preghe! Se non ci si aiuta tra di noi... chi ci deve aiutare, lo zio Bill?

    P.S.: Comunque il C++ non smetterà mai di stupirmi...
    Svegliati, Neo. Matrix ti possiede...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.