| |||||
| Dernière réponse | |
|---|---|
| Sujet : Besoin d'aide | |
| veryfree | :benetton: :cry: :hap: :sol: :bounce: :jap: :sleep: :sweat: :gun: :hello: :eek2: :D ;) :ouch: :??: :) :( :o :pt1cable: :p :na: :sarcastic: :crazy: :wahoo: :lol: :??: :fou: :non: :ange: :fuck: :love: :benetton: :cry: :hap: :sol: :bounce: :jap: :sleep: :sweat: :gun: :hello: :eek2: :D ;) :ouch: :??: :) :( :o :pt1cable: :p :na: :sarcastic: :crazy: :wahoo: :lol: :??: :fou: :non: :ange: :fuck: :love: :benetton: :cry: :hap: :sol: :bounce: :jap: :sleep: :sweat: :gun: :hello: :eek2: :D ;) :ouch: :??: :) :( :o :pt1cable: :p :na: :sarcastic: :crazy: :wahoo: :lol: :??: :fou: :non: :ange: :fuck: :love: :benetton: :cry: :hap: :sol: :bounce: :jap: :sleep: :sweat: :gun: :hello: :eek2: :D ;) :ouch: :??: :) :( :o :pt1cable: :p :na: :sarcastic: :crazy: :wahoo: :lol: :??: :fou: :non: :ange: :fuck: :love: :benetton: :cry: :hap: :sol: :bounce: :jap: :sleep: :sweat: :gun: :hello: :eek2: :D ;) :ouch: :??: :) :( :o :pt1cable: :p :na: :sarcastic: :crazy: :wahoo: :lol: :??: :fou: :non: :ange: :fuck: :love: :benetton: :cry: :hap: :sol: :bounce: :jap: :sleep: :sweat: :gun: :hello: :eek2: :D ;) :ouch: :??: :) :( :o :pt1cable: :p :na: :sarcastic: :crazy: :wahoo: :lol: :??: :fou: :non: :ange: :fuck: :love: c l an 2000! bonne année! [edtdd]--Message édité par veryfree--[/edtdd] |
| Aperçu |
|---|
| Vue Rapide de la discussion |
|---|
| veryfree | :benetton: :cry: :hap: :sol: :bounce: :jap: :sleep: :sweat: :gun: :hello: :eek2: :D ;) :ouch: :??: :) :( :o :pt1cable: :p :na: :sarcastic: :crazy: :wahoo: :lol: :??: :fou: :non: :ange: :fuck: :love: :benetton: :cry: :hap: :sol: :bounce: :jap: :sleep: :sweat: :gun: :hello: :eek2: :D ;) :ouch: :??: :) :( :o :pt1cable: :p :na: :sarcastic: :crazy: :wahoo: :lol: :??: :fou: :non: :ange: :fuck: :love: :benetton: :cry: :hap: :sol: :bounce: :jap: :sleep: :sweat: :gun: :hello: :eek2: :D ;) :ouch: :??: :) :( :o :pt1cable: :p :na: :sarcastic: :crazy: :wahoo: :lol: :??: :fou: :non: :ange: :fuck: :love: :benetton: :cry: :hap: :sol: :bounce: :jap: :sleep: :sweat: :gun: :hello: :eek2: :D ;) :ouch: :??: :) :( :o :pt1cable: :p :na: :sarcastic: :crazy: :wahoo: :lol: :??: :fou: :non: :ange: :fuck: :love: :benetton: :cry: :hap: :sol: :bounce: :jap: :sleep: :sweat: :gun: :hello: :eek2: :D ;) :ouch: :??: :) :( :o :pt1cable: :p :na: :sarcastic: :crazy: :wahoo: :lol: :??: :fou: :non: :ange: :fuck: :love: :benetton: :cry: :hap: :sol: :bounce: :jap: :sleep: :sweat: :gun: :hello: :eek2: :D ;) :ouch: :??: :) :( :o :pt1cable: :p :na: :sarcastic: :crazy: :wahoo: :lol: :??: :fou: :non: :ange: :fuck: :love: c l an 2000! bonne année! [edtdd]--Message édité par veryfree--[/edtdd] |
| LetoII | Essaye Le Langage C par Kernighan & Ritchie
pour les bases c super |
| Nexo | hum z'avez pas des bon livre a me conseiller pour le C ??
thx :) |
| LetoII | Faut bien apprendre un jour ou l'autre, personne a la science infuse ;) |
| Nexo | je compile avec turbo C++ 3.0,on utilise ca en tp
Desole d'etre pas un genie de C :( |
| LetoII |
|
| Nexo | Pourtant ma belle fonction je l'avais fait avec amour ,j'arrive a copie l'en tete coorectemnt avec mon truc mais bon me reste du boulot
/************************************************************************ Devoir GTR 1 :"Generation d'un document en HTML" Auteurs: Date: Mars 2002 ************************************************************************/ //biblioteques n?cessaire a l'execution du programme #include <stdio.h> #include <string.h> #include <ctype.h> #include <stdlib.h> #include <conio.h> #include <alloc.h> //tableaux #define max 100 typedef int tableau[max]; //************************************************ *********************** //********************* Fonctions utilis?es ***************************** //************************************************ *********************** int erreur(char *msg) //fonction erreur au cas ou l'execution se passe mal { printf("ERREUR!!! : %s\n",msg); //affichage du message d'erreur getchar();//on attend une saisit au clavier pour sortir exit(1); //on termine l'execution du programme return 0; } //*********************************************************************** int ecriturebalisesdebut() //fonction de creation des balises { char *dtete; //pointeur pour les balises HTML char *titre; char *dbody; char *br; FILE *html; html = fopen("cartouc.htm","w+" ); FILE *debut; debut= fopen("debut.htm","w+" ); strcpy(dtete,"<html>" ); //balises HTML strcpy(titre,"<head><title> Devoir GTR1 Cree par N</title></head>" ); strcpy(dbody,"<body>" ); strcpy(br,"<BR>" ); //saut de paragraphe fwrite(dtete,6,1,html); //structure du fichier .HTML fwrite(titre,strlen(titre),1,html); fwrite(dbody,6,1,html); fwrite(dtete,6,1,debut); //structure du fichier .HTML fwrite(titre,strlen(titre),1,debut); fwrite(dbody,6,1,debut); fclose(html); fclose(debut); return 0; } //*********************************************************************** int ecriturebalisefin() //fonction de fin du fichier { char *fbody; char *ftete; FILE *html; html = fopen("cartouc.htm","a" ); strcpy(fbody," <\body>" ); strcpy(ftete," <\html>" ); fwrite(fbody,7,1,html); fwrite(ftete,7,1,html); fclose(html); return 0; } //*********************************************************************** int ecriturecartouche() //on copie le cartouche dans le fichier html { char cart[100]; //tableau de longeur 100 char *texte[max]; char *te[max]; char test[2]; //servira pour lire deux carcateres en meme temps char toto[]={"/*"};//tableau contenant '/*' char titi[]={"*/"};//tableau contenant '*/' int i=0; //servira pour le comptage dans la boucle int ptr; //resultat de la comparaison test toto int ptr2;//resultat de la comparaison test titi FILE *fichier; //pointeur sur une structure de type fichier fichier = fopen("Matrices.c","r" );//ouverture du fichier en lecture seule FILE *html; if(!fichier)//erreur si le fichier n'est pas l? { erreur("Le fichier Matrices.c manque" ); } else { html=fopen("cartouc.htm","a+" ); //on ajoute a la fin du fichier fgets(test,3,fichier); ptr=strcmpi(test,toto); //on compare deux chaine if (ptr==0); //si elles sont identiques on fait la boucle { fgets(cart,100,fichier); fprintf(html,"<H2> %s </H2>",cart); for(i=0;i<5000;i++) //boucle s'arretant quand on a /* { fgets(test,3,fichier); ptr2=strcmpi(test,titi); if(ptr2==0) {break;} else { texte[i]=fgets(cart,100,fichier); fprintf(html,"%s<br> ",texte[i]); } } } } fclose(fichier); fclose(html); return 0; } //*********************************************************************** int fonctiontri() { char cart[100]; //tableau de longeur 100 char *texte[max]; char *te[max]; char test[2]; //servira pour lire deux carcateres en meme temps char toto[]={"/*"};//tableau contenant '/*' char titi[]={"*/"};//tableau contenant '*/' int i=0; //servira pour le comptage dans la boucle int ptr; //resultat de la comparaison test toto int ptr2;//resultat de la comparaison test titi FILE *fichier; //pointeur sur une structure de type fichier fichier = fopen("Matrices.c","r" );//ouverture du fichier en lecture seule FILE *html; if(!fichier)//erreur si le fichier n'est pas l? { erreur("Le fichier Matrices.c manque" ); } else { html=fopen("teste.htm","w+" ); //on ajoute a la fin du fichier fgets(test,3,fichier); ptr=strcmpi(test,toto); //on compare deux chaine if (ptr==0); //si elles sont identiques on fait la boucle { fgets(cart,100,fichier); fprintf(html,"<H2> %s </H2>",cart); for(i=0;i<5000;i++) //boucle s'arretant quand on a /* { te[i]=fgets(test,3,fichier); ptr2=strcmpi(test,titi); if(ptr2==0) {break;} else { texte[i]=fgets(cart,100,fichier); fprintf(html,"%s<br> ",texte[i]); } } } } fclose(fichier); fclose(html); return 0; } //************************************************ *********************** //********************* Procedure Principale *************************** //************************************************ *********************** void main() //procedure principale { FILE *debut; //pointeur vers le fichier debut char *bal; //servira pour faire un lien vers devoir.htm clrscr();//on efface l'ecran sous DOS ecriturebalisesdebut(); //on appelle les fonctions ecriturecartouche(); ecriturebalisefin(); fonctiontri(); debut=fopen("debut.htm","a+" ); //fichier contenant tout les fichier html strcpy(bal,"Pour lire le cartouche cliquez ""<a href=""cartouc.htm>""la""</A>" ); fwrite(bal,strlen(bal),1,debut); fclose(debut); } //*********************************************************************** OK c bordelique ,je devrais plutot faire une fonction tri que j'appelle a chaque fois mais c a rentre pour Mars ,j'essait de faire un bon truc Les astuces sont tjs les bien venus :) |
| Nexo | ben j'ai compile ton truc ca me met des erreurs
if(source=fopen("fichier","r" )) =>Possible incorect insignement voila Ps: si malheuresemnt jv'ais vraiment en cours mais amphi c pas le top :( |
| LetoII | c pas que je veux être médisant, mais bon.... prend ma solution :)
ps: t sur que t'est allé au cours d'algo? :) |
| Nexo | Merci ,j'ai fait autrement moi pour faire la selection
int fonctiontri() { char cart[100]; //tableau de longeur 100 char *texte[max]; char *te[max]; char test[2]; //servira pour lire deux carcateres en meme temps char toto[]={"/*"};//tableau contenant '/*' char titi[]={"*/"};//tableau contenant '*/' int i=0; //servira pour le comptage dans la boucle int ptr; //resultat de la comparaison test toto int ptr2;//resultat de la comparaison test titi FILE *fichier; //pointeur sur une structure de type fichier fichier = fopen("Matrices.c","r" );//ouverture du fichier en lecture seule FILE *html; if(!fichier)//erreur si le fichier n'est pas l? { erreur("Le fichier Matrices.c manque" ); } else { html=fopen("teste.htm","w+" ); //on ajoute a la fin du fichier fgets(test,3,fichier); ptr=strcmpi(test,toto); //on compare deux chaine if (ptr==0); //si elles sont identiques on fait la boucle { fgets(cart,100,fichier); fprintf(html,"<H2> %s </H2>",cart); for(i=0;i<5000;i++) //boucle s'arretant quand on a /* { te[i]=fgets(test,3,fichier); ptr2=strcmpi(test,titi); if(ptr2==0) {break;} else { texte[i]=fgets(cart,100,fichier); fprintf(html,"%s<br> ",texte[i]); } } } } fclose(fichier); fclose(html); return 0; } |
| LetoII | bon on va faire simple pour commencer:
FILE *source; int c,fin,temp,i; char buffer[1024]; if(source=fopen("nomFichier","r" )) { c=fgetc(source); while(c != EOF) { if(c == '/' && fgetc(source) == '*') { c=fgetc(source); fin=0; temp=0; i=0; while(c != EOF && !fin) { if(temp == '*' && c == '/') { fin=1; } else { if(temp) { bufer[i++]=temp; temp=0; } if(c == '*') { temp=c; } else { buffer[i++]=c; } } c=fgetc(source); } buffer[i]='\0'; } c=fgetc(source); } } [edtdd]--Message édité par letoII--[/edtdd] |
| Nexo | Mouah j'vais en cours mais comme j'ai dit on fait que de l'algo pas de C en cours!!! Le c c seulement en tp
Bon une derniere question ,j'arrive pas a cree une boucle qui a partir de '/*' jusqu'a '/*' copie le contenu dans une chaine toto Ex ; /* Premiers essais de calculs sur matrices fichier créé le 6/11/2001 pour les TP de langage C Département GTR, IUT de Blois */ Je veux commencer la saisit quand apres le /* et que la sasit ce termine apres le */ Pour le moment j'ai fait une boucle qui compte jusqu'a 4 et commencer apres le /* mais j'ai vu que ca conrepond pas au sujet Il faut faire une boucle qui des que lit /* commence la saisit et se termine a */ et copie le contenu dans toto qui sera ensuite copie dans le fichier html thx |
| LeGreg |
[edtdd]--Message édité par legreg--[/edtdd] |
| LetoII |
|
| deathsharp | Un conseil: change de prof ou d'ecole :D |
| LetoII | Un conseil: achéte toi un bon bouquin, ça te servira toujours ;) |
| Nexo | nop jamais de cours ,on a que des tp de merde ou on doit se de*** tout seul En cours c que de l'algo jamais de C :( Donc j'essais de me debrouiller comme je peux :( |
| LetoII | J'ai jeté un autre coup d'oeuil au reste, heu vous avez eu des cours de programmation avant qu'on vous donne ce devoir?
quand tu déclare un char * et que tu veux l'utiliser comme zone de stockage, faut pas oublier d'allouer la mémoirequi va avec: char *buffer=(char*)malloc(sizeof(char)*30));/*voici un tableau de 30 charactères dont l'espace mémoire a été alloué dynamiquement, c la meme chose que char buffer[30], sauf que tu peux metre une variable dnas le premier cas, du style: char *buffer=(char*)malloc(sizeof(char)*i));*/ |
| Nexo | merci ca m'aide beacoup,la copie est bonne là :)
reste plus qu'a faire une boucle :) |
| LetoII | bon alors j'ai juste regardé ta fonction car et y a qq truc qui vont pas, en dehors du fait que tu cole des comentaire C++ dans un proframme C mais bon :), j'ai mis en comentaire les modifications que j'ai faite
int car() /*on copie le cartouche dans le fichier html */ { char cart[100]; /*tableau de longeur 100 */ char *texte[max]; FILE *fichier,*html; /* En C on peut pas déclarer les variables en plein milieu d'un bloc*/ int i=0; /*servira pour la boucle fichier = fopen("Matrices.c","r" );//ouverture du fichier en lecture seule if(!fichier)/*erreur si le fichier n'est pas l? */ { erreur("Le fichier Matrices.c manque" ); } else { html = fopen("Devoir.htm","w+" ); /*fseek(fichier,0, SEEK_SET); inutile*/ fgets(cart,100,fichier); /*C la taille de cart qu'il faut mettre ici*/ fprintf(html,"%s",cart); fclose(fichier); fclose(html); } /* free(cart); SURTOUT PAS DE FREE C'EST UNE VARIABLE STATIQUE*/ return 0; } |
| Nexo | //biblioteques n?cessaire a l'execution du programme
#include <stdio.h> #include <string.h> #include <ctype.h> #include <stdlib.h> #include <conio.h> #include <alloc.h> //tableaux #define max 100 typedef int tableau[max]; //************************************************ *********************** //********************* Fonctions utilis?es ***************************** //************************************************ *********************** int erreur(char *msg) //fonction erreur au cas ou l'execution se passe mal { printf("ERREUR!!! : %s\n",msg); //affichage du message d'erreur getchar();//on attend une saisit au clavier pour sortir exit(1); //on termine l'execution du programme return 0; } //*********************************************************************** int balises() //fonction de creation des balises { char *dtete; //pointeur pour les balises HTML char *titre; char *dbody; char *br; FILE *html; html = fopen("Devoir.htm","w+" ); strcpy(dtete,"<html>" ); //balises HTML strcpy(titre,"<head><title> Devoir GTR1 Cree par Nexo </title></head>" ); strcpy(dbody,"<body>" ); strcpy(br,"<BR>" ); //saut de paragraphe fwrite(dtete,6,1,html); //structure du fichier .HTML fwrite(titre,strlen(titre),1,html); fwrite(dbody,6,1,html); fclose(html); free(dbody); //liberation de la memoire free(dtete); free(titre); free(br); return 0; } //*********************************************************************** int finbal() //fonction de fin du fichier { char *fbody; char *ftete; FILE *fhtml; fhtml = fopen("Devoir.htm","a+" ); strcpy(fbody,"<\body>" ); strcpy(ftete,"<\html>" ); fwrite(fbody,7,1,fhtml); fwrite(ftete,7,1,fhtml); fclose(fhtml); free(ftete); //liberation de la memoire free(fbody); return 0; } //*********************************************************************** int car() //on copie le cartouche dans le fichier html { char cart[100]; //tableau de longeur 100 char *texte[max]; int i=0; //servira pour la boucle FILE *fichier; //pointeur sur une structure de type fichier fichier = fopen("Matrices.c","r" );//ouverture du fichier en lecture seule FILE *html; html = fopen("Devoir.htm","w+" ); if(!fichier)//erreur si le fichier n'est pas l? { erreur("Le fichier Matrices.c manque" ); } { fseek(fichier,0, SEEK_SET); fgets(cart,'\n',fichier); fprintf(html,"%s",cart); fclose(fichier); fclose(html); } free(cart); return 0; } //************************************************ *********************** //********************* Procedure Principale *************************** //************************************************ *********************** void main() //procedure principale { clrscr();//on efface l'ecran sous DOS //balises(); //appelle dela fonction balises car(); // finbal(); } //************************************************ *********************** J'ai essaye de faire copie la premiere ligne de l'entet dans le fichier html mais ca marche pas :( |
| deathsharp | c bien un devoir que tu as a rendre?
ta deja fais qq chose? |
| Nexo | http://multimania.com/nexo1111/devoirIndex.html
j'arrive a rien :( ca marche pas ,ca copie n'importe quoi ;( |




