Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2015
    Messaggi
    6

    [C++] Problema con argv ed argc

    Salve a tutti, per un lavoro di tesi sto usando per la prima volta c++ ad un livello più "alto" ed OpenCV.
    Da giorni riscontro problemi con argc ed argv, io ho questo tratto di codice:
    codice:
    int main(int argc, char ** argv){       
         string inputFile(argv[1]),inputTimeFile(argv[1]),FGAviFile(argv[1]),BTAviFile(argv[1]), resultFile(argv[1]), regionMapFile(argv[1]);
       
        inputFile.append(".ogv");
        inputTimeFile.append("_aligned.csv");
        FGAviFile.append("_FG.avi");
        BTAviFile.append("_BT.avi");
        resultFile.append("_record.txt");
        regionMapFile.append("_map.png");
        cv::VideoCapture cap(inputFile);
        if(!cap.isOpened()) 
        {
            cout<<"cannot find the file "<<inputFile <<endl;
            return -1; 
         }
    La mia domanda è: come posso passare le variabili ad argv? ho trovato dove farlo (con le impostazioni del debug) ma non riesco a capire se devo passare il path del video o solo il nome e mettere il video in una cartella specifica.
    Credo che il problema sia quello perchè il debug mi visualizza correttamente un indirizzo di memoria in argv[1] ma le successive varibili (inputFile, InputTimeFile ecc) appaiono con la dicitura <BadPtr>.
    Ultima modifica di Baratta; 05-11-2016 a 11:48

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    come posso passare le variabili ad argv?
    Non ho capito cosa intendi.
    Ultima modifica di oregon; 05-11-2016 a 13:06
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2015
    Messaggi
    6
    Ciao, innanzitutto grazie per aver risposto . Io devo fornire al programma un video che ho sul pc. So che argv[0] è il nome del mio programma (ad esempio prog.exe) mentre il resto dell'array argv sono gli indirizzi delle variabili che esso utilizza. Non riesco a capire però come assegnare ad argv[1] la cella di memoria dove è contenuto il video che io voglio passare al programma. Ho provato a fornirgli sia il path del file sia il nome ed a inserire il file nella cartella del programma ma non ne riesco a venire a capo.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Continuo a capire poco, anche perché utilizzi termini non proprio corretti.

    Comunque, interpretando il tuo post, penso che tu non sappia come passare il valore ad argv[1]

    Devi compilare il programma e aprire una finestra da linea di comando.
    A quel punto puoi lanciare il tuo eseguibile inserendo nella linea il nome del file. Ad esempio

    programma.exe nomefile

    In questo modo il programma sarà eseguito e la prima stringa sarà passata ad argv[1]

    Ovviamente, per accedere a tale file, dato che non hai specificato il percorso, dovrai averlo nella stessa cartella dell'eseguibile.

    Puoi anche operare dall'IDE, se ne usi uno, ma dipende dall'IDE che usi.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2015
    Messaggi
    6
    Scusami per la mia pochezza di linguaggio tecnico.

    Credo di aver risolto quel problema grazie ancora

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Dopo aver seguito il thread sarebbe utile sapere come hai risolto ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2015
    Messaggi
    6
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Dopo aver seguito il thread sarebbe utile sapere come hai risolto ...
    come mi hai suggerito tu! Sto usando visual studio 2008, cliccando con il tasto destro sul nome del progetto si apre proprietà > debug e li si settano i parametri di ingresso senza bisogno di dover inserire il nome del programma visto che è implicito.
    Spero di essermi riuscito a spiegare nonostante le carenze del mio linguaggio tecnico.
    Grazie ancora per avermi aiutato

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.