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++] Inserire valori di un txt in un vector

    Ho un txt contenente una sola riga del tipo:

    3,7,8,12,19,20,22,28,29,31,35,38,42,43,50,54,56,57 ,58,60,67,71,72,75,80,85,89,

    dovrei inserire i singoli valori (che sono separati da virgola) in solo vector <int> numeri

    ma mi sono arenato... :master:

    Grazie infinite a chi mi da una mano a disincagliarmi... da questo sassolino...


  2. #2
    Codice PHP:
    #include <vector>
    #include <iostream>
    #include <fstream>
    #include <sstream>

    using namespace std;

    int main()
    {
        
    vector<intnums;
        
    ifstream file("text.txt");
        
    char buffer[8];
        
        while(
    file.getline(buffer8','))
        {        
            
    istringstream ss(buffer);
            
    int temp;
            
    ss >> temp;
            
    nums.push_back(temp);
        }    

    testato su:

    1,2,3,4,5,6,7,8,9,10

    Ovviamente fai tutte le verifiche del caso, con quel codice può accadere di tutto.


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

    grazie mille sembra funzionare alla grande solo che...

    Originariamente inviato da antotan
    Codice PHP:
    #include <vector>
    #include <iostream>
    #include <fstream>
    #include <sstream>

    using namespace std;

    int main()
    {
        
    vector<intnums;
        
    ifstream file("text.txt");
        
    char buffer[8];
        
        while(
    file.getline(buffer8','))
        {        
            
    istringstream ss(buffer);
            
    int temp;
            
    ss >> temp;
            
    nums.push_back(temp);
        }    

    testato su:

    1,2,3,4,5,6,7,8,9,10

    Ovviamente fai tutte le verifiche del caso, con quel codice può accadere di tutto.



    Non riesco a capire come mai...
    risolto questo problema ne sorge un altro... forse legato al primo ecco perchè lo posto qui...


    codice:
    cout << "NUMERO COMBINAZIONI FINALI... GENERATE X QUESTA TIPOLOGIA: ";
    cout << insiemecombinazioni.size();
    cin.get();
    
    
    ofstream foutT1;
    foutT1.open("combinazioni1.txt");  
    
    cout << "\nLETTURA DI TUTTO L'INSIEME DELLE SINGOLE COMBINAZIONI SEPARATE:\n\n";
    for (i=0; i<insiemecombinazioni.size()-1;i++){ 
    cout << insiemecombinazioni[i]+"\n"; 
    foutT1 << insiemecombinazioni[i]+"\n";
    cout << "QUI CI ARRIVA...";
    cin.get();
    cout << "Press ENTER to continue..." << endl; 
    cin.get();
    cout << "\n\n";
    }
    Dunque.. nonostante da verifica con stampa a video di tutti i passaggi... nonostante che il vector insiemecombinazioni sia popolato correttamente... nonostante il file combinazioni1.txt sia creato correttamente... e nonostante in fase di compilazione non dia alcunissimo errore... e mostri correttamente ogni singolo elemento del vector insiemecombinazioni... correttamente...

    il file combinazioni1.txt alla fine risulta vuoto

    Qualcuno/a saprebbe spiegarmi come mai?
    Letto e riletto il codice mi sembra corretto in ogni suo punto
    ma evidentemente mi sto sbagliando...

    Grazie infinite se vedete l'errore e me lo segnalate


  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Prima di terminare il programma chiudi il file ...
    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

    grazie

    Originariamente inviato da oregon
    Prima di terminare il programma chiudi il file ...


  6. #6
    codice:
    cout << insiemecombinazioni[i]+"\n"; 
    foutT1 << insiemecombinazioni[i]+"\n";
    questo non ha particolarmente senso.

    codice:
    	for (i=0; i<insiemecombinazioni.size();i++){ 
    		cout << insiemecombinazioni[i] << "\n"; 
    		foutT1 << insiemecombinazioni[i] << "\n";	
    	}
    	
    	foutT1.close();
    nota i < insiemecombinazioni.size() e non insiemecombinazioni.size()-1 (devi stamparle tutte, tu saltavi l'ultima)

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.