Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 29
  1. #1
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    [c++] modifica di questo codice al fine di avere più dati per ogni riga

    Ho questo codice utilissimo per estrapolare le estrazioni da ogni ruota dal file storico.txt però questo me le mette tutte in verticale... mentre adesso mi necessiterebbe modificarlo al fine di avere 11 combinazioni per ogni singola ruota su ogni riga (rappresentante ogni estrazione).

    Cerco di spiegarmi meglio con questo esempio scritto:

    Al momento il codice

    codice:
    
    #include <iostream>
    #include <fstream>
    #include <string>
    
    using namespace std;
    
    
    int main (int argc, char *argv[])
    {
    	ifstream fin;
    	fin.open("storico.txt");
    
    	ofstream fout;
    	fout.open("ESTRAZIONI-TUTTEeNAZIONALE.txt");
    
    	string s;
    	bool isOk = false;
    	int cnt = 0;
    	
    	while(!fin.eof())
    	{
    
    		fin >> s;
    
    		if(isOk)
    		{
        
    			if(cnt<4)
    			{
    				cout << s << "#";
    				fout << s << "#";
    				cnt++;
    			}
    			else if(cnt<5)
    			{
    				cout << s;
    				fout << s;
    				cnt++;
    			}
    			else
    			{
    				cout << "|";
    				fout << "|";
    				cnt=0;
    				isOk=false;
    			}
            }
            
    
    		if(s=="BA" || s=="CA" || s=="FI" || s=="GE" || s=="MI" || s=="NA" || s=="PA" || s=="RM" || s=="TO" || s=="VE" || s=="RN") isOk=true;
    	
    
        
        }
    
    	cout << "Press ENTER to continue..." << endl; 
    	cin.get();
    
    	return 0;
    }

    mi genera un file txt di questo tipo:

    58#22#47#49#69|
    27#57#81#43#61|
    40#38#57#67#7|
    85#44#48#88#55|
    73#80#39#38#57|
    73#24#4#39#22|
    19#43#10#31#27|
    9#43#61#14#75|
    18#77#33#62#19|
    31#47#12#7#80|
    35#24#52#90#41|
    4#10#36#63#35|
    10#77#43#37#35|
    4#86#61#84#58|
    82#7#15#88#34|
    85#21#45#65#56|
    68#65#41#28#67|
    37#82#69#9#67|
    37#23#12#19#27|
    15#76#82#11#55|
    29#8#44#69#28|
    36#74#7#70#76|
    36#41#43#35#40|
    76#85#50#42#22|
    76#55#48#85#71|
    24#40#12#77#30|
    47#85#18#38#50|
    73#34#8#39#17|
    52#25#63#84#60|
    56#87#82#90#53|
    27#48#40#33#67|
    58#84#13#51#32|
    70#2#20#85#75|

    In grassetto o evidenziato la combinazione dell'ultima ruota (VE) per ogni estrazione
    E in questo esempio sono state considerate solo 3 estrazioni.

    Mentre adesso io vorrei generato un file di questo altro tipo:


    58#22#47#49#69|27#57#81#43#61|40#38#57#67#7|85#44# 48#88#55|73#80#39#38#57|73#24#4#39#22|19#43#10#31# 27|9#43#61#14#75|18#77#33#62#19|31#47#12#7#80|35#24#52#90#41|

    4#10#36#63#35|10#77#43#37#35|4#86#61#84#58|82#7#15 #88#34|85#21#45#65#56|68#65#41#28#67|37#82#69#9#67 |37#23#12#19#27|15#76#82#11#55|29#8#44#69#28|36#74#7#70#76|

    36#41#43#35#40|76#85#50#42#22|76#55#48#85#71|24#40 #12#77#30|47#85#18#38#50|73#34#8#39#17|52#25#63#84 #60|56#87#82#90#53|27#48#40#33#67|58#84#13#51#32|70#2#20#85#75|

    Ovverosia solo dopo la combinazione dell'ultima ruota (VE) la riga dovrebbe andare a capo...

    Ho provato e riprovato a mettere cicli con for al fine di mandare a capo la riga di scrittura dopo 11 sottocicli (relativi alle varie ruote ad es...) ma nulla...

    Quindi chiedo agli/alle esperti/e magari a colui che mi ha ispirato per il codice soprastante
    (praticamente io l'ho modificato in piccolissima parte) che se ricordo bene è il mitico oregon
    di apportare questa per me vitale... modifichina.

    Grazie mille a tutti/e in ascolto... e buona domenica o quel che ne resta!

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Ti prego per la mia sanità mentale di chiudere i file prima dell'uscita

    In ogni caso potreti postare un segmento del file di input?
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725
    Ciao scara95, non ho capito cosa ti necessita...
    Ovvero con "potresti postare un segmento del file di input..."
    non capisco a cosa tu ti riferisca a meno che tu non
    intenda uno screen shoot del programma in esecuzione...
    ma non credo... Ad ogni modo il programma e' tutto qui.

    Grazie

  4. #4
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Intendo un pezzo del file da cui leggi...
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  5. #5
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725
    Originariamente inviato da Scara95
    Intendo un pezzo del file da cui leggi...
    Se ho capito bene...

    Ecco qua un pezzo del file "letto" in input...

    Il file storico.txt contiene ad esempio:

    2012/04/05 BA 13 18 34 19 75
    2012/04/05 CA 22 39 7 42 90
    2012/04/05 FI 74 2 70 18 40
    2012/04/05 GE 68 39 8 38 10
    2012/04/05 MI 35 14 74 59 20
    2012/04/05 NA 44 54 13 18 90
    2012/04/05 PA 70 29 80 90 38
    2012/04/05 RM 77 4 79 23 38
    2012/04/05 RN 70 10 32 22 81
    2012/04/05 TO 8 28 90 23 27
    2012/04/05 VE 43 90 50 55 46
    2012/04/07 BA 75 54 22 10 11
    2012/04/07 CA 36 49 3 58 45
    2012/04/07 FI 42 58 29 11 60
    2012/04/07 GE 53 52 58 10 2
    2012/04/07 MI 81 89 37 69 73
    2012/04/07 NA 80 59 46 82 33
    2012/04/07 PA 48 58 78 30 81
    2012/04/07 RM 24 86 50 35 83
    2012/04/07 RN 51 76 45 4 72
    2012/04/07 TO 30 8 85 26 24
    2012/04/07 VE 41 78 28 3 70

    Grazie


  6. #6
    Originariamente inviato da Scara95
    Ti prego per la mia sanità mentale di chiudere i file prima dell'uscita

    In ogni caso potreti postare un segmento del file di input?
    Si arrangia il distruttore a chiudere i file, potere del RAII.
    ...

  7. #7
    Ok, ho eseguito il tuo codice con il tuo file e, come sospettavo, l'output che produci non va mai a capo. Tu produci un file di testo di una riga sola.

    Pertanto per fare quello che tu vuoi effettua questo cambiamento dove inserisci il carattere pipe:

    codice:
    cout << "|\n";
    fout << "|\n";
    ...

  8. #8
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725
    No no... Il COD che ho postato in effetti non comprende
    Il ritorno a capo per errore ma non si tratta di quello...
    Nella versione corretta che ho riporta giustamente una combinazione
    Sotto l'altra includendo appunto il Carattere speciale \n
    Io pero' avrei bisogno come postato nel primo
    Msg di andare a capo solo dopo l'ultima ruota
    Ovvero solo dopo Venezia... E cosi' per
    Tutti i giorni di estrazione... Spero di essere
    Stato piu' chiaro adesso. Grazie comunque

  9. #9
    Non ti scrivo il codice ma ti aiuto a ragionare.
    Cominci a scrivere il file ogni qual volta isOk è vera.
    Nell'istruzione in cui valorizzi isOk controlli anche se s=='VE' che è anche la condizione in cui oltre al pipe dovrai inserire il carattere \n.
    Ti suggerisco di controllare, magari con una ulteriore variabile bool, quando ti si presenta s=='VE' e di verificarla nel ciclo di scrittura per fare l'output del carattere \n.
    ...

  10. #10
    Utente bannato
    Registrato dal
    Apr 2012
    Messaggi
    510
    Puoi costare il codice "vero" che stai usando?

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.