Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - come creare file nella barra dei comandi di xcode per controllare se il codice funziona.
Forum - C/C++ - come creare file nella barra dei comandi di xcode per controllare se il codice funziona.

Avatar
cami (Normal User)
Newbie


Messaggi: 3
Iscritto: 19/08/2011

Segnala al moderatore
Postato alle 19:23
Venerdì, 19/08/2011
Ciao a tutti!

Sto imparando a programmare in C, ho un mac ed il mio compilatore e' xcode.
Devo scrivere un programma che mostra in sequenza sullo schermo il contenuto di tutti i files elencati nella barra dei comandi. Purtroppo non riesco a creare files nella barra dei comandi e di conseguenza non riesco a verificare se il codice e' giusto. Ho provato dal terminal del mac, i files creati risultano ma il programma non li legge. Probabilmente il codice non e' corretto e ho bisogno di un consiglio..Qualcuno di voi sa come fare? Grazie!

[#include <stdio.h>
#include <stdlib.h>

int main (int argc, char * argv[])
{
   char ch;
   int i;
   FILE *fp;  
    
    for(i = 0; i < argc; i++)
        if((fp = fopen(argv[ 1 ],"r"))==NULL) {
            printf("Il file non si puo' aprire.\n");
            exit(1);
        }
              
            while((ch = fgetc( fp )) != EOF) {
        printf("%c", ch);
    }
    fclose(fp);
    
    return 0;
}]

edit x comina8: intanto ti ringrazio veramente per la pazienza! provero' a spiegarmi meglio perche' mi rendo condo che c'e' un pochino di confusione.
Non accedo al programma tramite il terminale dei comandi unix. In xcode e' possibile scrivere codici in c,compilarli ed eseguirli. Credo che il codice, con le modifiche eseguite con i tuoi consigli, sia corretto. Dov'e' il problema? Quando eseguo il run (non dal terminale dei comandi unix ma da xcode) dovrebbe apparimi una schermata che mostra tutti i files aperti in sequenza e questo non succede perche' all'interno della barra dei comandi di xcode non ci sono files da aprire che mi consentano di testare la funzionalita' del mio codice. Non riesco a capire come posso creare files nella barra dei comandi xcode ( da un terminal di unix userei un editor di testo) a prescindere dal codice che dovrebbe aprirli e mostrarli. Sono molto frustrata perche' so che e' una cosa in teoria molto semplice. Grazie ancora e ciao!

Ultima modifica effettuata da cami il 20/08/2011 alle 18:36
PM
Avatar
comina8 (Normal User)
Pro


Messaggi: 86
Iscritto: 18/06/2011

Up
1
Down
V
Segnala al moderatore
Postato alle 10:58
Sabato, 20/08/2011
Prima di tutto impara a spiegarti meglio perché altrimenti non si capisce una cippa...
Seconda cosa se devi inserire dei codici ti conviene editare il tuo primo post e usare i tag [cod e] e [/cod e] (senza spazi)...
Terza cosa tu vuoi creare un programma che, facendolo partire dalla linea di comando (o terminale) in questo modo:

programma.exe file1.txt file2.txt

In argv[0] ci sarà programma.exe, in argv[1] ci sara file1.txt ...
Naturalmente come stringhe...

Per quanto riguarda come aprirli mi pare di avertelo già spiegato...

PM
Avatar
comina8 (Normal User)
Pro


Messaggi: 86
Iscritto: 18/06/2011

Up
0
Down
V
Segnala al moderatore
Postato alle 20:24
Venerdì, 19/08/2011
Tu praticamente vuoi aprire i files che l'utente inserire come argomenti alla riga di comando, e stamparne il contenuto a video?

Allora il procedimento è giusto solo hai commesso qualche piccolo errore:

for(i=1; i<=argc; i++)

perché in argv[0] c'è il nome del programma stesso.

Seconda cosa all'inizio del for tu apri un file controllando appositamente che esista: nell'apertura tu passi come file da aprire sempre argv[1] mentre il risultato che penso volevi ottenere fosse argv[ i] cioè scorra gli argomenti come la i scorre nel for, analizzando quindi argv[1], argv[2] etc...

Il procedimento dopo (quello che riguarda la stampa è corretto) ma l'istruzione fclose(fp) la devi mettere prima della parentesi graffa che chiude il for, cosicché da chiudere ogni file dopo averlo effettivamente stampato e avere la possibilità di aprirne un altro...

EDIT: ho notato che il for in effetti non ha parentesi: le devi mettere dopo la riga for(...) e dopo la riga fclose.

Ultima modifica effettuata da comina8 il 19/08/2011 alle 20:25
@cami: oltre a questo, ricordati che xcode e' un IDE, non un compilatore. - pierotofy - 19/08/11 20:27
Grazie mille! Questo e' il programma modificato: - cami - 19/08/11 23:05
[#include <stdio.h> #include <stdlib.h> int main (int argc, char * argv[]) { char ch; int i; FILE *fp; for(i = 1; i < argc; i++) {if((fp = fopen(argv[i],"r"))==NULL) { printf("Il file non si puo' aprire.\n"); exit(1); } - cami - 19/08/11 23:09
scusami non so per quale motivo non il codice e' venuto scritto in questo modo e non [code]. In ogni caso volevo aprire tutti i files nella barra di comando e vedere il contenuto sullo schermo in sequenza, penso sia la stessa cosa. purtroppo ancora una volta non posso controllare, sembra compilato - cami - 19/08/11 23:15
correttamente. hai idea di come creare i files nella barra comandi? grazie ancora - cami - 19/08/11 23:16
PM