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

    [c++] unica riga con numeri intervallati da virgola

    Io dovrei semplicemente... contarne le occorrenze per ciascuno...
    ma non so da dove cominciare... in c++

    Ad esempio ho questo file riga.txt costituito da un'unica riga:

    1,2,2,2,2,2,3,3,3,3,4,4,5,5,5,5,6,7,7,7

    secondo l'esempio dovrei avere un report.txt finale di questo tipo:

    1 -> presente 1 volta
    2 -> presente 5 volte
    3 -> presente 4 volte
    4 -> presente 2 volte
    5 -> presente 4 volte
    6 -> presente 1 volta
    7 -> presente 3 volte
    ecc... fino a...
    90 -> presente n volte






    Meglio così MItaly?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Comincia con l'aprire il file e leggere la riga ... dopo tutti questi post non hai ancora imparato un po' di C/C++ ? Dopo tanti suggerimenti non cammini da solo ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    [OT]Multa di 20 € per aver incasinato il layout del forum.[/OT]
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    si aperto e letto la riga... ma...

    Originariamente inviato da oregon
    Comincia con l'aprire il file e leggere la riga ... dopo tutti questi post non hai ancora imparato un po' di C/C++ ? Dopo tanti suggerimenti non cammini da solo ?
    Mi areno dopo comunque ok.. provo a trovare alone una solution

  5. #5
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Re: si aperto e letto la riga... ma...

    Originariamente inviato da freetom
    Mi areno dopo comunque ok.. provo a trovare alone una solution
    Ci sono quasi riuscito
    solo dovrei ottimizzarlo al fine di non avere un errore alla fine del programma (l'applicazione verrà chiusa ecc..)

    Per quanto riguarda la creazione del file voluto me lo crea senza errori tranne una riga eccessiva del tipo:

    le presenze x questo numero: 89 sono: 2
    le presenze x questo numero: 90 sono: 4
    le presenze x questo numero: <--- RIGA IN ECCESSO...

    Questo il codice (se riuscite a capire perchè mi si chiude in malo modo... vi ringrazio!)

    codice:
    #include <iostream>
    #include <fstream>
    #include <string>
    #include <vector>
    #include <algorithm>
    #include <sstream>
    #include <iomanip>
    
    
    using namespace std;
    
    string intToString(int value) {
        stringstream ss;
        ss << value;
        return ss.str();
    }
    
    string floatToString(float value) {
        stringstream ss;
        ss << value;
        return ss.str();
    }
    
    
    int main (int argc, char *argv[]) {
    
        ofstream fout;
    	
    	fout.open("PRESENZE-NUMERI-RILEVATI-NEL-FILE-A.txt", ios::app);
    
    //-----------------------------------
    
    vector<string> vec;
    int contaterzina=0;
    int contatore=0;
    int conteggio=0;
    int presenze=0;
    int presenze3=0;
    int contaxambo=0;
    int contaestrazioni=0;
    int conteggio2=0;
    vector<int> ritardi;
    vector<int> ritardi2;
    vector<string> terzineconritardi;
    vector<string> terzineconritardi2;
    int contacolpibuoni=0;
    string testo,estratta;
    
    //-----------------------------------
    
    
    vector<string> nums;
    vector<string> novanta;
        
        ifstream file("fileA.txt");
        char buffer[8];
        
        while(file.getline(buffer, 8, ','))
        {        
            istringstream ss(buffer);
            string temp;
            ss >> temp;
            nums.push_back(temp);
        }    
    
    int sz = nums.size();    
    for (int i=0; i<sz;i++)  { 
    
    cout << nums[i];
    cout << "\n";    
        
    }
    
    cout << "\n\n";
    cout << "seconda parte";   
    cout << "\n\n";
    
    cin.get();
    
    ifstream fin("tuttie90inumeri.txt");
    if (fin) {
       string s;
       while(fin) // cattura tutti gli errori.
       {
          getline(fin,s); 
          
          //cout << s;
          novanta.push_back(s);
       }
    }
    
    int sz2 = novanta.size();    
    for (int h=0; h<sz2-1;h++)  { 
    
    cout << novanta[h];
    cout << "\n";    
        
    }
    
    cin.get();  
    
    
    
    
    for (int x=0; x < sz-1; x ++) { 
    for (int y=0; y < sz; y++) {
    
    if (nums[y] == novanta[x]) {
    
    cout << "numeroA: ";
    cout << nums[y];
    cout << " VS ";
    cout << "numeroB: ";
    cout << novanta[x];
    cout << " uguale!";
    cout << " presenze: ";
    cout << presenze;
    presenze++;
    cout << "valore di x: ";
    cout << x;
    cout << "\n";
    cout << "valore di y: ";
    cout << y;
    
    cin.get();
    
    
    }
    } 
    
    
    //scrivi su file e azzera presenze per verifica numero successivo...
    
    
    fout << "le presenze x questo numero: ";
    fout << novanta[x];
    fout << " sono: ";
    fout << presenze; 
    fout << "\n";
    
    
    
    presenze=0;    
    
    //------------------------------------------------------------------
    
    
    
    }    
    
    
    
    
    
    fout.close();
    
    
    
    }

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Se il codice non è indentato correttamente, non è possibile capirlo subito e si rinuncia a farlo, credimi ...
    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.