Copiare finchè non è finito un testo

di il
16 risposte

Copiare finchè non è finito un testo

Ragazzi vorrei scrivere direttamente da un file su un altro file,fin quando il primo non è finito;

quindi:
#include <iostream>
#include <fstream>
using namespace std;

int main (int argc, char * const argv[]) {
	fstream in,out;
	
	in.open("/Users/Genna/Desktop/esame/esame/testo1.txt",ios::in);
	out.open("/Users/Genna/Desktop/esame/esame/testo2.txt",ios::out);
	
	while(!in.eof())
	{
		
	cout<<in;

	in.close();
  	out.close();
	return 0;
}
ma nel secondo file mi inserisce infiniti indirizzi, in loop, tanto che devo riavviare il computer poiché mi si blocca tutto, cosa sbaglio?

16 Risposte

  • Re: Copiare finchè non è finito un testo

    Dall'esempio sembra che su out non stai scrivendo niente.
  • Re: Copiare finchè non è finito un testo

    #include <iostream>
    #include <fstream>
    using namespace std;
    
    int main (int argc, char * const argv[]) {
       fstream in,out;
       
       in.open("/Users/Genna/Desktop/esame/esame/testo1.txt",ios::in);
       out.open("/Users/Genna/Desktop/esame/esame/testo2.txt",ios::out);
       
       while(!in.eof())
       {      
       out<<in;
        }
    
    
       in.close();
         out.close();
       return 0;
    }
    credo xd
  • Re: Copiare finchè non è finito un testo

    Si, infatti, invece di scrivere su un file sto stampando a video, ma comunque non funziona
  • Re: Copiare finchè non è finito un testo

    XD di solito non uso l'eof xD fai così che va. se poi vuoi sapere perchè non va come vuoi fare tu aspetta a skynet o alee (anche se credo sia perchè forse non puoi passare da un file all'altro direttamente ma boh)

    #include <iostream>
    #include <fstream>
    using namespace std;
    
    int main (int argc, char * const argv[]) {
       fstream in,out;
       string temp;
    
       in.open("testo1.txt",ios::in);
       out.open("testo2.txt",ios::out);
    
       while(getline(in,temp))
       {
         out<<temp<<endl;
       }
    
    
       in.close();
         out.close();
       return 0;
    }
    E BUON NATALE
  • Re: Copiare finchè non è finito un testo

    1mm0rt4le ha scritto:


    xD di solito non uso l'eof xD fai così che va. se poi vuoi sapere perchè non va come vuoi fare tu aspetta a skynet o alee (anche se credo sia perchè forse non puoi passare da un file all'altro direttamente ma boh)

    #include <iostream>
    #include <fstream>
    using namespace std;
    
    int main (int argc, char * const argv[]) {
       fstream in,out;
       string temp;
    
       in.open("testo1.txt",ios::in);
       out.open("testo2.txt",ios::out);
    
       while(getline(in,temp))
       {
         out<<temp<<endl;
       }
    
    
       in.close();
         out.close();
       return 0;
    }
    E BUON NATALE
    ottimo ! sto cercando questo pezzo di codice da un bel po !
  • Re: Copiare finchè non è finito un testo

    Ma precisamente qual'è la logica?

    while(getline(in,temp))
    {
    out<<temp<<endl;
    }

    xD
  • Re: Copiare finchè non è finito un testo

    Allora: finchè c'è qualcosa nel file viene passata (tramite il getline che prende una riga intera dal file) a temp (che è una stringa in modo che possa immagazzinare lettere e numeri).
    while(getline(in,temp))
    volendo potresti fare anche while(in>>temp) solo che in questo modo preleva solo una parola alla volta invece che una riga

    poi la stringa temp viene passata a out
    out<<temp<<endl;
    e quando il ciclo while è finito vengono chiusi i file
  • Re: Copiare finchè non è finito un testo

    Ottimo, ho provato anche while (in>>temp) che però non considera gli spazi

    grazie ancora
  • Re: Copiare finchè non è finito un testo

    Per mettere gli spazi con >> devi fare

    while(in>>temp)
    {
    out<<temp<<" ";
    }

    così metti lo spazio dopo ogni parola
  • Re: Copiare finchè non è finito un testo

    Bisognerebbe scrivere una funzione che soddisfi tutti i tipi di file, non solo ascii...
    di norma si crea un area buffer da 1 a 4 k e si gioca con quest'ultima.
    l'acqua calda non dobbiamo inventarla
  • Re: Copiare finchè non è finito un testo

    Eh? xD visto che non sono esperto non so gestire buffer ecc. gli ho fatto vedere l'acqua calda >.< poi se vuole qualcosa di più complicato se la cerca >.<
  • Re: Copiare finchè non è finito un testo

    Il problema è che neanche il token che illustri è una valida soluzione.
    Nel caso si iteri fino ad FF per una dimensione di un byte... o si faccia lo stesso con una grandezza maggiore.... che cambia a livello di codice? e se apriamo i files in binario non otteniamo lo stessa cosa ma agendo su qualsiasi tipo di dato? ... questa é l'acqua calda!

    Comunque, per conoscienza, un buffer è una area di memoria adiacente.
  • Re: Copiare finchè non è finito un testo

    Mhh non c'ho capito niente >.< xD forse meglio che mi metta a studiare ancora prima di dare consigli agli altri (comunque il mio metodo mi sembra che vada bene per lui dato che deve aprire un file txt e copiare il suo contenuto in un altro file txt e non deve aprirlo in binario ) vabè non voglio dire più cavolate xD
  • Re: Copiare finchè non è finito un testo

    Ixamit, sono curioso di vedere l'altra soluzione, posti qualcosa?
Devi accedere o registrarti per scrivere nel forum
16 risposte