Pagina 2 di 4 primaprima 1 2 3 4 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 35
  1. #11
    ma in questo modo, non rispetta il tracciato record che ho definito:
    codice:
                     ofstream write("Prova.txt",ios::out);
                     write << "NOME";
                     write.seekp (20, ios_base::beg);
                     write <<"COGNOME";
                     write.seekp (40, ios_base::beg);
                     write <<"NUMERO";
                     write.seekp (54, ios_base::beg); 
                     write <<"E-MAIL"<<endl;
                     cout << "Inserisci  nome:"<<endl;
                     cin >> nome;
                     write.seekp (0, ios_base::cur);
                     write << nome; 
                     cout << "Inserisci  cognome:"<<endl; 
                     cin >> cogn;
                     write.seekp (20, ios_base::cur);
                     write << cogn; 
                     cout << "Inserisci  numero:"<<endl; 
                     cin >> numero;
                     write.seekp (20, ios_base::cur);
                     write << numero; 
                     cout << "Inserisci  e-mail:"<<endl; 
                     cin >> mail; 
                     write.seekp (14, ios_base::cur);
                     write << mail << endl;       
                     write.close();
    ad esempio se inserisco
    nome=salvatore
    cognome=abcdefghilmnop
    ...
    mi stampa
    codice:
    NOME (altri 16 spazi vuoti) COGNOME      
    salvatore (+20 spazi) abcdefghilmnop.  // io vorrei che lasciasse invece (20-salvatore (spazi vuoi))
    Io invece vorrei che sarebbero tutti allineati

  2. #12
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Salvatore_91
    Io invece vorrei che fossero tutti allineati
    Attenzione all'italiano ...

    Devi considerare quanto sono lunghi i dati gia' visualizzati, dato che lo spostamento e' relativo ... quindi

    codice:
       ofstream write("c:\\prova.txt",ios::out);
       write << "NOME";
       write.seekp (20, ios_base::beg);
       write <<"COGNOME";
       write.seekp (40, ios_base::beg);
       write <<"NUMERO";
       write.seekp (54, ios_base::beg); 
       write <<"E-MAIL"<<endl;
                     
       cout << "Inserisci  nome:"<<endl;
       cin >> nome;
       write << nome; 
       write.seekp((streamoff)(20-nome.length()), ios_base::cur);
    
       cout << "Inserisci  cognome:"<<endl; 
       cin >> cogn;
       write << cogn; 
       write.seekp((streamoff)(20-cogn.length()), ios_base::cur);
       
       cout << "Inserisci  numero:"<<endl; 
       cin >> numero;
       write << numero; 
       write.seekp((streamoff)(14-numero.length()), ios_base::cur);
       
       cout << "Inserisci  e-mail:"<<endl; 
       cin >> mail; 
       write << mail << endl;       
       
       write.close();
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #13
    si, l'ho fatto, pero' non ho usato streamoff che usi tu e funziona lo stesso.
    Senti io ho creato una procedura di acquisizione:
    codice:
    # include <iostream>
    # include <windows.h> 
    # include <string.h> 
    # include <fstream>
    using namespace std;
    
    string nome, cogn, numero, mail;
    
    void inizia();
    void acquisizione();
    void scrittura();
    
    int main()
    {
      int scelta;
      long pos;
      cout << "RUBRICA telefonica\n"<<endl;
      while (scelta!=5)
      {
      cout << "1) Inizia Rubrica "<<endl;
      cout << "2) Aggiungi Contatti "<<endl;
      cout << "3) Visualizza contatti "<<endl;
      cout << "4) Elimina tutta la Rubrica "<<endl;
      cout << "5) Esci"<<endl;
      cin >> scelta; 
    
      if (scelta==1)
                    {
                     ofstream write("Prova.txt",ios::out);
                     write << "NOME";
                     write.seekp (20, ios_base::beg);
                     write <<"COGNOME";
                     write.seekp (40, ios_base::beg);
                     write <<"NUMERO";
                     write.seekp (54, ios_base::beg); 
                     write <<"E-MAIL"<<endl;
                     acquisizione();
                     write.close();                    
                    }
      if (scelta==2)
                    {
                     ofstream write("Prova.txt",ios::app);
                     
                    } 
      if (scelta==3)
                    {
                           
                    } 
                    
      }                                      
      system("PAUSE");  
    }
    //------------------------------------------------------------------------------
    void acquisizione()
    {
     cout << "Inserisci  nome:"<<endl;
     cin >> nome;
     write.seekp (0, ios_base::cur);
     write << nome; 
     cout << "Inserisci  cognome:"<<endl; 
     cin >> cogn;
     pos=nome.length();
     write.seekp (20-pos, ios_base::cur);
     write << cogn; 
     cout << "Inserisci  numero:"<<endl; 
     cin >> numero;
     pos=cogn.length();
     write.seekp (20-pos, ios_base::cur);
     write << numero; 
     cout << "Inserisci  e-mail:"<<endl; 
     cin >> mail; 
     pos=numero.length();
     write.seekp (14-pos, ios_base::cur);
     write << mail << endl;
    }
    //------------------------------------------------------------------------------
    void scrittura()
    {    
    
    }
    questa procedura la richiamo ogni volta che mi serve, pera' adess compilandola mi da' errore (che dice che non ho dichiarato write)

  4. #14
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Salvatore_91
    si, l'ho fatto, pero' non ho usato streamoff che usi tu e funziona lo stesso.
    Perche' hai usato una variabile temporanea ... se provi esattamente il codice che ti ho mostrato, allora devi usare il cast con streamoff ...

    Senti io ho creato una procedura di acquisizione ... che dice che non ho dichiarato write
    E perche' ti meravigli?

    Cosa e'

    write

    all'interno della funzione?

    Se non glielo passi, la funzione non conosce cosa e' write ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #15
    si, lo sapevo per quale problema mi dava errore, pero' non riesco a passargli "write".

  6. #16
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Salvatore_91
    si, lo sapevo per quale problema mi dava errore, pero' non riesco a passargli "write".
    Cosa e' write?

    Come si passano i parametri alle funzioni?

    Scusa, ma questa e' una cosa "di base" della programmazione ... se non sai passare argomenti alle funzioni, fermati e studia meglio questa parte del linguaggio sui libri...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #17
    io passo (ofstream write), ma mi da ancora un errore:
    expected primary-expression before "write"

  8. #18
    ho fatto in questo modo:
    codice:
    # include <iostream>
    # include <windows.h> 
    # include <string.h> 
    # include <fstream>
    using namespace std;
    
    string nome, cogn, numero, mail;
    long pos;
    
    void inizia();
    void acquisizione(ofstream write);
    void scrittura();
    
    int main()
    {
      int scelta;
      cout << "RUBRICA telefonica\n"<<endl;
      //ifstream is;
      //is.open ("Rubrica", ios::binary );
      while (scelta!=5)
      {
      cout << "1) Inizia Rubrica "<<endl;
      cout << "2) Aggiungi Contatti "<<endl;
      cout << "3) Visualizza contatti "<<endl;
      cout << "4) Elimina tutta la Rubrica "<<endl;
      cout << "5) Esci"<<endl;
      cin >> scelta; 
    
      if (scelta==1)
                    {
                     ofstream write("Prova.txt",ios::out);
                     write << "NOME";
                     write.seekp (20, ios_base::beg);
                     write <<"COGNOME";
                     write.seekp (40, ios_base::beg);
                     write <<"NUMERO";
                     write.seekp (54, ios_base::beg); 
                     write <<"E-MAIL"<<endl;
                     acquisizione(ofstream write);
                     write.close();                    
                    }
      if (scelta==2)
                    {
                     ofstream write("Prova.txt",ios::app);
                     
                    } 
      if (scelta==3)
                    {
                           
                    } 
                    
      }                                      
      system("PAUSE");  
    }
    //------------------------------------------------------------------------------
    void acquisizione(ofstream write)
    {
     cout << "Inserisci  nome:"<<endl;
     cin >> nome;
     write.seekp (0, ios_base::cur);
     write << nome; 
     cout << "Inserisci  cognome:"<<endl; 
     cin >> cogn;
     pos=nome.length();
     write.seekp (20-pos, ios_base::cur);
     write << cogn; 
     cout << "Inserisci  numero:"<<endl; 
     cin >> numero;
     pos=cogn.length();
     write.seekp (20-pos, ios_base::cur);
     write << numero; 
     cout << "Inserisci  e-mail:"<<endl; 
     cin >> mail; 
     pos=numero.length();
     write.seekp (14-pos, ios_base::cur);
     write << mail << endl;
    }
    //------------------------------------------------------------------------------
    void scrittura()
    {    
    
    }
    Non ho mai passato valori del genere. Fino ad oggi, ho solo passato valori per funzioni matematiche

  9. #19
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Salvatore_91
    Non ho mai passato valori del genere. Fino ad oggi, ho solo passato valori per funzioni matematiche
    Il passaggio dei parametri alle funzioni non dipende dal tipo di parametro ... e' un concetto generale ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #20
    ok, ma nella dichiarazione della funzione, come la devo dichiarare??
    Se passo un parametro, mica devo scrivere "int eccecc()"?;

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.