Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

[C]Eseguire programma c suddiviso in + files

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

[C]Eseguire programma c suddiviso in + files

Messaggioda simox83 » sab mar 27, 2004 1:55 pm

Volevo chiedervi una cosa. Sto facendo un progetto per il lab di programmazione in C, e bisogna suddividerlo in 5 file... di cui 3 sono sorgenti (nomefile.c) e due sono header (.h). Una volta che ho scritto il codice, come si linkano e si mandano in esecuzione i vari files?? grazie!!!!
Avatar utente
simox83
Neo Iscritto
Neo Iscritto
 
Messaggi: 12
Iscritto il: mar feb 24, 2004 12:41 pm

[C]Eseguire programma c suddiviso in + files

Messaggioda simox83 » sab mar 27, 2004 1:55 pm

Volevo chiedervi una cosa. Sto facendo un progetto per il lab di programmazione in C, e bisogna suddividerlo in 5 file... di cui 3 sono sorgenti (nomefile.c) e due sono header (.h). Una volta che ho scritto il codice, come si linkano e si mandano in esecuzione i vari files?? grazie!!!!
Avatar utente
simox83
Neo Iscritto
Neo Iscritto
 
Messaggi: 12
Iscritto il: mar feb 24, 2004 12:41 pm

Messaggioda Xerex » sab mar 27, 2004 3:11 pm

<font color="red">Il Tag prima dell'oggetto grazie</font id="red">

Allora, per fare quello che vuoi fare, se sei sotto linux, devi utilizzare un'utility chiamata make che ti permette di compilare i sorgenti e le intestazioni in modo molto veloce.
Avatar utente
Xerex
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5948
Iscritto il: lun ago 05, 2002 9:36 am
Località: Parma(Pr)


Messaggioda simox83 » dom mar 28, 2004 12:07 pm

Si ne avevo sentito parlare della make, ma non so come si usa.... sapresti spiegarmelo??? grazie!!
Avatar utente
simox83
Neo Iscritto
Neo Iscritto
 
Messaggi: 12
Iscritto il: mar feb 24, 2004 12:41 pm

Messaggioda Xerex » dom mar 28, 2004 1:04 pm

Allora, l'idea è quella di indicare al Make le dipendenze dei file .c rispetto ai file oggetto.
Al momento della compilazione il Make compilarà soltanto i file modificati con netto risparmio di tempo e senza errori.

Ti copio un'esempio, non troppo semplice, ma neanche troppo complesso, di un programma con un buon numero di dipendenze


<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citazione:<hr height="1" noshade id="quote">
all: router.exe

router.exe: adt.o util.o router.o router_lib.o semaphore.o

gcc -o router.exe -Wall -pedantic adt.o util.o router.o router_lib.o semaphore.o

adt.o: adt.c h/adt.h

gcc -c -o adt.o -Wall -pedantic adt.c

util.o: util/util.c h/util.h h/define.h

gcc -c -o util.o -Wall -pedantic util/util.c

router_lib.o: router_lib.c h/router_lib.h h/semaphore.h ##

gcc -c -o router_lib.o -Wall -pedantic router_lib.c

router.o: router.c h/define.h h/util.h h/router_lib.h h/adt.h h/semaphore.h ##

gcc -c -o router.o -Wall -pedantic router.c

semaphore.o: semaphore.c h/semaphore.h h/adt.h

gcc -c -o semaphore.o -Wall -pedantic semaphore.c



archive:
tar czvf router.tar.gz adt.c router.c router_lib.c semaphore.c h/* util/* Makefile doc/* clean_sem

run:
./router.exe 9000 #standard port 9000

clean:
rm router.exe *.o
<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">

Prova a vedere se ti può essere d'aiuto.

le ultime 4 opzioni erano legate al progetto in questione, non dovrebbero esserti utili
Avatar utente
Xerex
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5948
Iscritto il: lun ago 05, 2002 9:36 am
Località: Parma(Pr)

Messaggioda simox83 » sab apr 03, 2004 12:07 pm

ok grazie, penso di aver capito!!!!! comunque ora ho un altro problema, non riesco bene a capire la gestione dei file! vi posto un esempio di funzione che devo svolgere (l'algoritmo è molto semplice, ma è proprio la gestione dei file che non capisco.....)

Un messaggio sarà composto da lettere dell'alfabeto internazionale. I messaggi saranno letti da file di testo e trasformati in una stringa di caratteri minuscoli, sostituendo ogni lettera accentata con la non accentata corrispondente e ogni carattere non alfabetico con uno spazio. Il prototipo è char *leggitesto(FILE *fPtr); questa funzione prende in input il puntatore al file e restituisce la stringa che contiene il contenuto del file "normalizzato" secondo le regole date.

Io avevo ragionato così:
prendo un file, lo apro e ci scrivo un messaggio dentro. poi con il codice modifico il messaggio e lo butto in una stringa... il fatto è: ma l'output della stringa normalizzata deve apparire nel file o nella shell??? eppoi come si fa a scrivere dentro 1 file??? basta che ci scrivo tranquillamente, o lo devo fare tramite codice???? spero possiate aiutarmi!!!! grazie!!!!
Avatar utente
simox83
Neo Iscritto
Neo Iscritto
 
Messaggi: 12
Iscritto il: mar feb 24, 2004 12:41 pm

Messaggioda Xerex » sab apr 03, 2004 7:38 pm

se devo essere sincero non ho ben capito qual è il tuo dubbio...
ti spiego come interpreto io il problema.

in una cartella qualunque hai un file di testo con al suo interno una stringa.
con la "leggitesto" usando una read, ti "salvi" la stringa, la modifichi come vuoi e poi la stampi a video.In fin dei conti, non ci metti molto a cambiare.

<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citazione:<hr height="1" noshade id="quote">eppoi come si fa a scrivere dentro 1 file??? basta che ci scrivo tranquillamente, o lo devo fare tramite codice????<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">

questa non l'ho proprio capita...
Avatar utente
Xerex
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5948
Iscritto il: lun ago 05, 2002 9:36 am
Località: Parma(Pr)

Messaggioda dd2y » sab apr 03, 2004 8:26 pm

non capisco nemmeno io quale sia il problema....
spiegati meglio... !

ciao
Avatar utente
dd2y
Aficionado
Aficionado
 
Messaggi: 39
Iscritto il: sab mar 20, 2004 9:37 pm

Messaggioda simox83 » sab apr 03, 2004 8:43 pm

diciamo che qualcosa ho risolto... alcuni dubbi se ne sono andati!!! ho scritto il programmino ma in output mi dà solamente la stringa senza il primo carattere... dateci un'occhiata

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

int main()

{FILE *fPtr;
int c;
char *s;

fPtr = fopen ("prova.txt","r+");
if(fPtr==NULL)
printf("Il file non può essere aperto
");

s=(char*)malloc(sizeof(char));



while(fgets(s,(int)s-1, fPtr)!=NULL) {

if(*s<'a' || *s>'z'){
*s=' ';
}
s++;
}

fputs(s,fPtr);
fclose (fPtr);
system ("PAUSE");
return 0;
}

dov'è che sbaglio??? grazie!!!
Avatar utente
simox83
Neo Iscritto
Neo Iscritto
 
Messaggi: 12
Iscritto il: mar feb 24, 2004 12:41 pm

Messaggioda Xerex » dom apr 04, 2004 1:57 pm

prova ad usare la fread.
In quel modo ti puoi leggere tutto quello che vuoi senza bisogno di fare controlli continui su quello che leggi dal file.

<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citazione:<hr height="1" noshade id="quote">
if(*s<'a' || *s>'z'){
*s=' ';
<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">

cosa fanno queste righe?
Avatar utente
Xerex
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5948
Iscritto il: lun ago 05, 2002 9:36 am
Località: Parma(Pr)

Messaggioda simox83 » dom apr 04, 2004 7:44 pm

quelle righe devono sostituire i caratteri non alfabetici (tipo gli accenti, le virgole ecc...) con gli spazi.... ovviamente non funziona!!!
Avatar utente
simox83
Neo Iscritto
Neo Iscritto
 
Messaggi: 12
Iscritto il: mar feb 24, 2004 12:41 pm

Messaggioda simox83 » gio apr 08, 2004 5:53 pm

Come si fa a contare i caratteri di una riga da un file di testo??? c'è qualche funzione??? grazie!!!
Avatar utente
simox83
Neo Iscritto
Neo Iscritto
 
Messaggi: 12
Iscritto il: mar feb 24, 2004 12:41 pm

Messaggioda Xerex » gio apr 08, 2004 7:34 pm

<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citazione:<hr height="1" noshade id="quote"><i>Messaggio inserito da simox83</i>
<br />Come si fa a contare i caratteri di una riga da un file di testo??? c'è qualche funzione??? grazie!!!
<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">

Puoi leggere la riga, metterla in una stringa e usare strlen()
Avatar utente
Xerex
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5948
Iscritto il: lun ago 05, 2002 9:36 am
Località: Parma(Pr)


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising