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

    [c++] Io avrei necessita di andare a capo ogni tot valori

    Ricordo vagamente che per ottenere un simile risultato di azione ogni tot valori si può ricorrere all'operatore modulo ma non ricordo la modalità d'implementazione...

    In sostanza io avrei questo mio codice da ottimizzare in tal senso:

    codice:
      while(f.good()) //fino a quando c'è qualcosa da leggere ..
        {
            //legge tutta la riga dal file e la mette nella variabile s
            getline(f, s);
            contatore++;
            if (contatore==11) {
            cout<<"\n";
            //scrivo ritorno a capo su file;
            fa << "\n";
            }
            else {
            cout<<s;
            //scrivo riga su file;
            cout<<",";
            
            fa << s;
            fa << ",";
            
            }
            
        }
    Ovvero per multipli di 11 di contatore devo andare a capo...

    Qualcuno/a mi aiuterebbe a implementare a tale scopo l'operatore modulo?

    Grazie!


  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,468
    C'è poco da implementare .... se contatore modulo 11 è uguale a zero ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725
    Originariamente inviato da oregon
    C'è poco da implementare .... se contatore modulo 11 è uguale a zero ...
    Ciao Oregon non ho capito...
    come dovrei fare per andare a capo ogni 10 righe sapendo che contatore==11 funziona in modo corretto ma solo per la prima riga?

    Grazie

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,468
    Allora modulo 10 non modulo 11 ...

    Scusa ... vuoi tentare di scrivere tu questa riga?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725
    Originariamente inviato da oregon
    Allora modulo 10 non modulo 11 ...

    Scusa ... vuoi tentare di scrivere tu questa riga?
    Forse ho trovato come...

    codice:
    if (contatore%11==0) {
    Però c'e' un problema...
    Ho 7200 righe da 5 elementi ciascuna intervallati da virgola e una volta che attuo l'opzione ritorno a capo ogni modulo 11 mi ritrovo anzichè 720 righe come dovrebbe essere , solo 655 righe.

    Da cosa potrebbe dipendere e come potrei risolvere?

    Tnx


  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,468
    Cosa ti ho scritto appena prima ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725
    Originariamente inviato da oregon
    Cosa ti ho scritto appena prima ?
    Dunque anche con:

    codice:
    if (contatore%10==0) {
    con questo file di 7200 righe che inizia con:

    32,54,43,90,40
    77,52,67,6,75
    41,82,64,86,22
    35,42,15,69,22
    67,24,42,56,68
    21,81,16,62,64
    30,37,83,87,85
    47,53,84,67,16
    62,31,73,50,79
    49,68,44,15,11
    21,44,27,53,88
    17,52,51,19,50
    15,83,20,39,78
    44,65,58,70,31
    18,67,30,23,15
    57,10,34,87,41
    59,75,23,21,78
    57,61,54,16,60
    1,17,37,43,20
    57,19,45,17,42

    e la fine...

    55,40,15,16,81
    5,90,13,84,59
    34,83,54,8,19
    61,24,73,90,83
    46,50,11,70,18
    49,11,65,31,10
    55,29,58,26,45
    27,90,58,53,30
    14,57,42,27,63
    56,57,72,10,9


    invece di andarmi a capo come dovrebbe ad es. alla 10° riga 49,68,44,15,11 mi va a capo alla precedente... e invece di contarmi come ultimo pezzo 56,57,72,10,9 mi conta il precedente...

    sto a diventà matto


  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,468
    Il codice adesso qual è?

    E siamo sicuri che nelle stringhe che visualizzi non ci siano dei "ritorni a capo"?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725
    Originariamente inviato da oregon
    Il codice adesso qual è?

    E siamo sicuri che nelle stringhe che visualizzi non ci siano dei "ritorni a capo"?
    il codice è questo:

    codice:
    #include <iostream>
    #include <fstream> //header necessario per ifstream!
    
    using namespace std;
    
    int main() {
        //nome del file da aprire, si può mettere anche il percorso (es C:\\file.txt)
        ifstream f("righe.txt");
        string s;
        int contatore=0;
        
    ofstream fa;
    fa.open("RISULTANTI.txt", ios::app); //apre il file in scrittura (in modalità appending)
    
        if(!f) {
            cout << "Il file non esiste!";
            return -1;
        }
    
        while(f.good()) //fino a quando c'è qualcosa da leggere ..
        {
            //legge tutta la riga dal file e la mette nella variabile s
            getline(f, s);
            contatore++;
            if (contatore%10==0) {
            cout<<"\n";
            //scrivo ritorno a capo su file;
            fa << "\n";
            }
            else {
            cout<<s;
            //scrivo riga su file;
            cout<<",";
            
            fa << s;
            fa << ",";
            
            }
            
        }
        f.close(); //chiude il file
        fa.close();
        return 0;
    }
    e i due file riche.txt e RISULTANTI.txt non hanno "ritorni a capo" in eccesso tranne quelli da gestire come scritto sopra (verificato con notepad ++)

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,468
    Si può scaricare il file di dati per provarlo?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.