PDA

Visualizza la versione completa : [C] Piccolissimo programmino


roberto150
13-02-2008, 09:36
Devo realizzare un piccolissimo programmino in C che non deve fare altro che stampare un file txt usando la stampa da Dos (con il comando "print 'nomefile.txt' "). Per il problema che voglio che il file venga stampato semplicemente trascinandolo sull'eseguibile generato dal compilatore.
E' molto stupida come cosa, qualcuno ha qualche suggerimento??

oregon
13-02-2008, 09:37
Se e' una cosa molto stupida, qual e' il problema? Cosa non sai fare?

In ogni caso, scrivi il codice usando il parametro argv[1] passato al main ...

roberto150
13-02-2008, 09:39
quindi se io trascino il file sull'eseguibile, lo riconosce sulla variabile argv[1]?

roberto150
13-02-2008, 09:52
il problema che non so associare il file trascinato ad una variabile

king64
13-02-2008, 11:17
Cosa intendi per trascinare un file sul tuo eseguibile ? :master:

roberto150
13-02-2008, 11:22
l'eseguibile il mio programmino in C compilato. Questo programmino deve stampare un file TXT direttamente dal dos. Per io vorrei, se fosse possibile, che la stampa avvenisse quando io prendo il file TXT e lo sposto con il mouse sopra l'eseguibile generato dal compilatore. E' una cosa fattibile secondo voi?

oregon
13-02-2008, 13:58
Ma hai provato quello che ti ho detto? Altrimenti, a che serve rispondere?

XWolverineX
13-02-2008, 20:50
Trascinandolo sul tuo eseguibile automaticamente il file passato diviene argomento del tuo programma.

Questo argomento (che il file da stampare) lo trovi nel tuo programma nell'array di char * chiamato argv

roberto150
14-02-2008, 08:57
si ho provato. il file se lo prende, ma non riesco a stampare. a me sembrava che facendo stampare: "print nomefile.txt" e premendo invio riuscivo a stampare direttamente da dos...
ma non cos... sapete qual il comando in c per stampare da msdos??


Il mio codice questo:



#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>


using namespace std;


int main(int argc, char *argv[])
{
//scanf ("%s", &argv[1]);
char ok;
printf("--- Premi INVIO per stampare il file ---\n");
printf("print %s", argv[1]);
scanf("%c",&ok);

}

XWolverineX
14-02-2008, 14:02
printf("print %s", argv[1]);

Questo sbagliato.
Il comando printf stampa a video la stringa che gli passi.
Devi sostituirla con una chiamata a system



char buf[50];
sprintf(buf,"print %s", argv[1]);
system(buf);

Loading