Come capire quando andare a capo su file .txt

di il
13 risposte

Come capire quando andare a capo su file .txt

Buonasera a tutti, stavo facendo un esercizio il quale prendeva come input un file .txt con 100 righe e un numero indefinito di parole ogni riga, io, dopo aver modificato ogni stringa, dovrei andare a capo ogni volta che termina il task. Il problema è che non capisco come fare, qualcuno mi sa aiutare? grazie in anticipo

13 Risposte

  • Re: Come capire quando andare a capo su file .txt

    Che vuol dire "dovrei andare a capo ogni volta che termina il task"?
  • Re: Come capire quando andare a capo su file .txt

    Weierstrass ha scritto:


    Che vuol dire "dovrei andare a capo ogni volta che termina il task"?
    ciao Weierstrass, scusami effettivamente non sono stato chiarissimo, vista la mia scarsa capacità di sintesi ti faccio un esempio pratico

    Io ho in input un file di txt di 100 righe ad esempio questo
    
    mamma italia francia elefante
    sicilia sardegna
    casa albero lattuga panino pesce televisione armadio
    ecc
    ecc
    
    adesso io dovrei modificare queste stringhe ad esempio togliendo le vocali, e metterle in un nuovo file di output, così
    
    mmm tl frnc lfnt
    scl srdgn
    cs lbr lttg pnn psc tlvsne rmd
    ecc
    ecc
    
    Ad implementare il metodo non ho avuto problemi, solo che l'esercizio richiede l'output nella stessa forma dell'input, per le 100 righe ho risolto con un banale for, solo che per andare a capo il discorso è un pò più complesso perchè ogni riga ha un numero diverso di parole.
    Spero adesso di essere stato più chiaro
  • Re: Come capire quando andare a capo su file .txt

    Posta quello che hai fatto.

    In teoria non dovresti avere tutti questi problemi: apri l'input e l'output assieme, acquisisci la riga, tokenizzi la stringa con ' ', per ogni parola scrivi in output la trasformata seguita da spazio, quando sono finite le parole scrivi in output '\n', passi alla prossima riga e fai lo stesso finché non hai finito il file.
  • Re: Come capire quando andare a capo su file .txt

    Weierstrass ha scritto:


    Posta quello che hai fatto.

    In teoria non dovresti avere tutti questi problemi: apri l'input e l'output assieme, acquisisci la riga, tokenizzi la stringa con ' ', per ogni parola scrivi in output la trasformata seguita da spazio, quando sono finite le parole scrivi in output '\n', passi alla prossima riga e fai lo stesso finché non hai finito il file.
    Il problema è che non ho sempre lo stesso input, devo fare un codice che funzioni per ogni input da 100 righe. Ti posto il mio codice, quello che devo fare è trasformare ogni parola in "alfabeto farfallino", ovvero a ogni vocale ci sarà l'aggiunta di una f interposta, ad esempio ciao diventa "cifiafaofo". Comunque come già detto il problema non è il metodo in quanto questo funziona perfettamente.
    
    #include <iostream>
    #include <fstream>
    #include <string>
    using namespace std;
    ifstream in("input.txt");
    ofstream out("output.txt");
    
    
    
    void funzione(string stringa) {
    	string parola = "";
    	int i = 0;
    	
    	while (i<stringa.length()) {
    		if (stringa[i] == 'a' || stringa[i] == 'e'||stringa[i] == 'i' || stringa[i] == 'o' || stringa[i] == 'u') {
    			parola+=stringa[i];
    			parola+='f';
    			parola+=stringa[i];
    		}
    		else 
    			parola+=stringa[i];
    		i++;
    	
    	}
    	
    	out << parola <<" ";
    	
    }
    
    
    
    int main() {
    	string ciao;
    	for (int j=0; j<100; j++) {
    		in >> ciao;
    		funzione(ciao);
    		
    
    	}
    }
    
    
    
    Io vorrei trovare un modo per chiamare la endl quando finisce la riga, ma non ho trovato nulla
  • Re: Come capire quando andare a capo su file .txt

    Devi acquisire per riga
    http://www.cplusplus.com/reference/istream/istream/getline/
    con il ciclo while(cin.getline(...))
    Poi tokenizzi con ' '
    http://www.cplusplus.com/reference/cstring/strtok
    E all'interno del secondo while dei token converti la parola e la scrivi in output, seguita da spazio. Quando finisce il while dei token chiudi la riga col newline

    Sennò ci sono molte altre strade. C'è la getline versione string. Naviga un po' e sperimenta.

    P.s.: quel while che hai fatto in funzione() è più chiaro scritto come for
  • Re: Come capire quando andare a capo su file .txt

    Grazie mille, effettivamente avevo letto in rete di utilizzare questa funzione, ma non avendola mai usata, e non conoscendola, mi sono un po' lasciato intimorire . Comunque domani la studierò e proverò a chiudere finalmente questo esercizio. Grazie veramente per il tuo aiuto, sei stato chiarissimo!
  • Re: Come capire quando andare a capo su file .txt

    Ma non capisco una cosa


    Perche non può semplicemente leggere carattere per carattere e mandare in uscita o il carattere non modificato oppure, se fosse una vocale, elaborato come gli serve

    In questa maniera i fine riga gli 'scivolano via bene 'senza che se ne accorga
  • Re: Come capire quando andare a capo su file .txt

    Scusami non capisco cosa intendi, potresti spiegarti meglio?
  • Re: Come capire quando andare a capo su file .txt

    È semplice cosa intende dire. Leggi carattere per carattere e trattalo secondo le tue regole. Il carattere ritorno a capo passerà nell'outout senza problemi.
  • Re: Come capire quando andare a capo su file .txt

    Io avevo provato a scorrere ogni carattere fin quando non trovavo il \n, ma non ha funzionato, come dovrei fare? sicuramente come avevo fatto io era sbagliato
  • Re: Come capire quando andare a capo su file .txt

    Non hai capito. Scorri tutto fino all'Eco e tratta il \n come un qualsiasi carattere
  • Re: Come capire quando andare a capo su file .txt

    oregon ha scritto:


    Non hai capito. Scorri tutto fino all'Eco e tratta il \n come un qualsiasi carattere
    Va bene ci proverò, grazie come sempre @Oregon
  • Re: Come capire quando andare a capo su file .txt

    Fino all'eof
Devi accedere o registrarti per scrivere nel forum
13 risposte