Visualizzazione dei risultati da 1 a 6 su 6

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    3

    [C++] Passare parametri da riga di comando con file di testo

    Ciao, qualcuno può aiutarmi?


    ho un programma che deve ricevere, in input dalla riga di comando, un file di testo che ha come contenuto degli altri parametri, ovvero:

    gli passo prova.txt (file di testo) che continere

    input1.txt
    input2.txt
    input3.txt

    per ora ho fatto una cosa del tipo un controllo se il numero dei parametri passati da riga di comanda è giusto, ovvero che non sia diverso da 2 (argv[0]=nome del programma e argv[1]=input.txt)

    non so come fare ad andare avanti, non so come utilizzare input1.txt input2.txt input3,txt, ci dovrei fare delle cose con questi paramatri passati ma non so come poterli "toccare"

    grazie

  2. #2
    Apri il file di testo che ti è stato specificato usando un std::ifstream, e quindi leggi gli altri parametri usando std::getline o i normali operatori di lettura da stream (>>)...
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    3
    ciao Mitaly, grazie per il suggerimento, ho provato a fare una cosa del tipo:

    codice:
     ifstream fileIn(argv[1]) //che sarebbe il mio prova.txt
    
    int i=0;
    
    while(fileIn){
                in.getline(strings[i++])

    }

    ma il problema è sempre lo stesso: perchè io dovrei fare altre cose con input1 input2 input3 e non so come accedervi, per questo avevo pensato a:

    codice:
      vector<char> inputfile;
        int i=0;
    
    
        while(text.good())   {
            inputfile>>vector;
    
    
        }
    
    
        for(i=0;i<2;i++)  {
            cout<<vector[i] <<endl;
        }
        
        input1= vector[0];
        input2=vector[1];
        input3= vector[2];
    grazie

  4. #4
    Il concetto è quello... usa un std::vector<std::string> per caricarci dentro i parametri letti dal file, e da lì poi puoi farci quel che ti pare.
    codice:
    std::ifstream is(argv[1]);
    if(!is)
    {
        std::cerr<<"Impossibile aprire il file.";
        return 1;
    }
    
    std::vector<std::string> righe;
    std::string t;
    while(std::getline(is, t))
        right.push_back(t);
    // ora in righe hai tutte le righe lette da file, con cui puoi fare quel che ti pare
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    3
    Grazie mille l unica cosa che mi rimane ancora da capire è come si "accede" ai singoli parametri....per questo avevo messo vector[0] vector[1], va bene così quella parte?

  6. #6
    Esatto, trattandosi di un std::vector è quello il modo corretto di accedere ai suoi elementi.
    Amaro C++, il gusto pieno dell'undefined behavior.

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.