Aiuto fstream C++
  • In diretta da GamesVillage.it
    • News
    • -
    • In Evidenza
    • -
    • Recensioni
    • -
    • RetroGaming
    • -
    • Anteprime
    • -
    • Video
    • -
    • Cinema

Visualizzazione risultati da 1 a 7 di 7

Discussione: Aiuto fstream C++

Cambio titolo
  1. #1
    Bluesman L'avatar di Berretto Verde
    Registrato il
    09-04
    Località
    Roma
    Messaggi
    9.178

    Aiuto fstream C++

    Ciao ragazzi mi servirebbe un aiuto per un programma in C clean, praticamente dovrei utilizzare il flusso d'entrata e d'uscita nei sottoprogrammi di lettura e di stampa a video. Quindi usare la libreria fstream. In poche parole dovrebbe prendere i dati e stamparli in due file di testo.

    Vi rilascio il programma completo con flussi di lettura e di stampa a video.


    #include <cstdlib>
    #include <iostream>
    #include <math.h>

    const int N = 4;

    using namespace std;





    void leggiCerchi(int cerchi[N][3]) {
    int i;
    for(i = 0; i< N; i++) {
    cout << "-------------------------------------------";
    cout << "Cerchio " << i << endl;
    cout << "Inserire le coordinate x e y del centro: ";
    cin >> cerchi[i][0];
    cin >> cerchi[i][1];
    cout << "Inserire il raggio: ";
    cin >> cerchi[i][2];
    }
    return;
    }

    void stampaCerchi(int cerchi[N][3]) {
    int i;
    for(i = 0; i< N; i++) {
    cout << "-------------------------------------------";
    cout << "Cerchio " << i << ":" << endl;
    cout << "\tcentro: (" << cerchi[i][0] << ",\t" << cerchi[i][1]<< ")";
    cout << "\traggio: " << cerchi[i][2];
    cout << endl;
    }
    return;


    }

    float circonferenza(int cerchi[N][3],float c[N]) {
    float pigreco = 3.14;
    for(int i=0; i<N; i++) {
    c[i]= (2*pigreco*cerchi[i][2]);
    cout << "La circoferenza del cerchio " << i << " e': " << c[i];
    cout << endl;
    }
    }

    float sommaCirconferenza(int cerchi[N][3],float c[N]) {
    float cTot=0;
    for (int i=0; i<N; i++){
    cTot+=c[i];
    }
    cout << "La somma delle circonferenze e' :" << cTot;
    cout << endl;

    return cTot;
    }

    bool contenuto(int cerchi[N][3],float c[N], float distanza[N]){
    bool cipolla = false;
    int i = 0;
    int j = 0;
    int contatore = 0;


    for (i=0;i<N;i++) {
    float distanza1 = (pow(((cerchi[i][0])-(cerchi[i+1][0])),2)) + (pow(((cerchi[i][1])-(cerchi[i+1][1])),2));
    distanza[i] = sqrt(distanza1);
    if((distanza[i]+(cerchi[i+1][2]))<=(cerchi[i][2])){
    contatore++;
    }
    }
    if (contatore==N-1) {
    cipolla = true;
    }

    if (cipolla==true) {
    cout << "OK" << endl;
    } else {
    cout << "NO" <<((N-1)-contatore) << endl;
    }
    return cipolla;
    }





    int main()
    {
    int cerchi[N][3];
    float c[N];
    float distanza[N];

    leggiCerchi(cerchi);
    stampaCerchi(cerchi);
    circonferenza(cerchi,c);
    sommaCirconferenza(cerchi,c);
    contenuto(cerchi,c,distanza);

    system("PAUSE");
    return EXIT_SUCCESS;
    }


  2. #2
    si ma la domanda qual' è?
    I racconti dei miei viaggi: GV, Facebook, Youtube , Twitter, Pinterest, Website
    Vuoi propormi la tua musica da inserire nel mio prossimo video? scrivimi in privato

  3. #3
    alnews
    Ospite
    Citazione QuasarLex Visualizza Messaggio
    si ma la domanda qual' è?
    Immagino convertire il programma da I/O su schermo a I/O su file.

  4. #4
    Bluesman L'avatar di Berretto Verde
    Registrato il
    09-04
    Località
    Roma
    Messaggi
    9.178
    Citazione alnews Visualizza Messaggio
    Immagino convertire il programma da I/O su schermo a I/O su file.
    Si,scusate la poca chiarezza.


  5. #5
    Sinceramente in c++ non ho mai imparato a farlo perchè ho sempre usato la libreria stdio.h del C... prova a dare un occhiata qui http://www.disp.uniroma2.it/users/bu.../CPP3/CPP3.HTM
    I racconti dei miei viaggi: GV, Facebook, Youtube , Twitter, Pinterest, Website
    Vuoi propormi la tua musica da inserire nel mio prossimo video? scrivimi in privato

  6. #6
    alnews
    Ospite
    Citazione QuasarLex Visualizza Messaggio
    Sinceramente in c++ non ho mai imparato a farlo perchè ho sempre usato la libreria stdio.h del C... prova a dare un occhiata qui http://www.disp.uniroma2.it/users/bu.../CPP3/CPP3.HTM
    Ma è C.

    EDIT: Ah no scusami, svista enorme, "un programma in C clean" mi ha confuso xd.
    Comunque è semplicissimo guarda, in pratica una volta aggiunta la libreria fstream, usi questa sintassi per dichiarare gli stream:

    Codice PHP:
    ifstream input// Stream di input, "input" è il nome a tua scelta.
    ofstream output// Stream di output, "output" è il nome a tua scelta.

    input.open("nome_file.txt"); // Apertura del file in scrittura
    output.open("nome_file.txt"); // Apertura del file in lettura

    // Controllo di corretta apertura del file

    if (input.fail())
       {
             
    cout << "Errore nell'apertura del file \"nome_file.txt\"!\n\n";
             exit(
    1);
       }

    /* [... utilizzo ...] */

    input >> /* Lo usi esattamente come cin, opererà sul file */
    output << /* Lo usi esattamente come cout, opererà sul file */ 
    Ultima modifica di alnews; 17-02-2011 alle 01:13:21

  7. #7
    TheEnigmist L'avatar di Tommy_2
    Registrato il
    04-05
    Località
    Italy
    Messaggi
    9.116
    Citazione alnews Visualizza Messaggio
    cut.
    Io uso una sintassi del genere!
    C++ (ovviamente)
    Codice PHP:
    fstream name//  "name" è il nome a tua scelta.

    name.open("nome_file.txt",ios::in// Apertura flusso in input
    name.open("nome_file.txt",ios::out//Apertura flusso in output

    // Controllo di corretta apertura del file

    if (!name)
       {
             
    cout << "Errore nell'apertura del file\n";
           
       }

    /* [... utilizzo ...] */

    input >> /* Lo usi esattamente come cin, opererà sul file */
    output << /* Lo usi esattamente come cout, opererà sul file */ 
    Comunque ho notato che dentro alle procedure leggi e stampa hai messo return;
    Non ha senso, se è un void non c'è bisogno di mettere return. Strano che il compilatore non ti avvisi!
    Anche la funzione "float circonferenza" non andrebbe bene. Non ritorna nulla, può benissimo essere una procedura void.

Regole di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •