Allocation de tableaux de structures (malloc)
Fermé
k11
Messages postés
3
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
18 avril 2007
-
17 avril 2007 à 08:43
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 - 18 avril 2007 à 11:13
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 - 18 avril 2007 à 11:13
A voir également:
- Allocation de tableaux de structures (malloc)
- Tableaux croisés dynamiques - Guide
- Fusionner deux tableaux excel - Guide
- Tableau de raccourcis clavier - Guide
- Impossible d'afficher le rapport de tableau croisé dynamique sur un rapport existant ✓ - Forum Excel
- Tableau de code ascii - Guide
3 réponses
Stupeflip
Messages postés
391
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
4 décembre 2007
94
17 avril 2007 à 10:28
17 avril 2007 à 10:28
Salut,
Mets
dans ta déclaration au lieu d'un
Normalement ça sera déjà mieux.
Tiens moi au courant
Mets
const int expr_nbr=100;
dans ta déclaration au lieu d'un
int expr_nbr=100;
Normalement ça sera déjà mieux.
Tiens moi au courant
Stupeflip
Messages postés
391
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
4 décembre 2007
94
18 avril 2007 à 09:46
18 avril 2007 à 09:46
Si j'ai bien compris ton code, tu prends un caractère dans le fichier, tu le scan un coup pour voir si ça fait le bonne chaîne, et tu positionnes un curseur position au bon endroit dans le fichier ? (cursor_position pointe sur le fichier ?)
Seulement après, tu ne tiens plus compte de ce curseur, tu copies tout dans CAT[i] jusqu'à ton caractère '<' quoiqu'il arrive. En plus ça se brouille ici, tu copies currentchar dans le 2e do/while en incrémentant CAT[i], mais sans changer currentchar.
Enfin tu as une accolade ouvrante toute seule (ligne 4), peut-être n'as-tu pas mis tout ton code, et avec ce que je lis je ne peux pas t'aider plus voilà !
Bon courage
Seulement après, tu ne tiens plus compte de ce curseur, tu copies tout dans CAT[i] jusqu'à ton caractère '<' quoiqu'il arrive. En plus ça se brouille ici, tu copies currentchar dans le 2e do/while en incrémentant CAT[i], mais sans changer currentchar.
Enfin tu as une accolade ouvrante toute seule (ligne 4), peut-être n'as-tu pas mis tout ton code, et avec ce que je lis je ne peux pas t'aider plus voilà !
Bon courage
k11
Messages postés
3
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
18 avril 2007
18 avril 2007 à 10:06
18 avril 2007 à 10:06
Stupeflip>
en fait tu as raison j'ai passe la journee dessus pour conclure que c 'etait trop brouillon.
donc j'ai decide de prendre petit a petit,je me suis dit d'abord je fais une petit bout ki me rentre juste le vocabulaire anglais,
et dans la page Html il@est toujours compris entre
w"> ENGLISH <
donc j 'ai decide de balayer encore avec getchar et d'imprimer a chak fois tous ce qui est entre ces caracteres,le pb c 'est que je m'en sors pas non plus cette fois il ne plante plus,mais il m'affiche tous le fichir source Html [T_T]
HELP!
cette fois ca ressemble a ca:
//////////////////////////////////////////////////////
je sais que ma boucle et mal faite ,et que avec le fgetc je prends paski est bon,mais j'arrive pas a l'arranger >_<
en fait tu as raison j'ai passe la journee dessus pour conclure que c 'etait trop brouillon.
donc j'ai decide de prendre petit a petit,je me suis dit d'abord je fais une petit bout ki me rentre juste le vocabulaire anglais,
et dans la page Html il@est toujours compris entre
w"> ENGLISH <
donc j 'ai decide de balayer encore avec getchar et d'imprimer a chak fois tous ce qui est entre ces caracteres,le pb c 'est que je m'en sors pas non plus cette fois il ne plante plus,mais il m'affiche tous le fichir source Html [T_T]
HELP!
cette fois ca ressemble a ca:
int main(int argc, char *argv[]) { int i; int CurrentChar; char CAT[100]; int ENG1[3]={119,34,62}; FILE *TheFile = fopen("1.htm", "r"); if(NULL==TheFile){ printf("ERROR!This File does not exist!!\n\n"); return 1;} if (TheFile!= NULL) { do{ CurrentChar = fgetc(TheFile ); for(i=0;i<3;i++) { if(CurrentChar==ENG1[i]) //je compare avec mes { //3 caracteres w"> if(ENG1[2]==62) //si j'arrive a la derinere { //case de mon tableau do{ //je veux imprimer //tous juskau caractere < printf("%c\n",(char)CurrentChar); }while(CurrentChar!=60); } } } } while(CurrentChar!=EOF); fclose(TheFile); } system("PAUSE"); return 0; }
//////////////////////////////////////////////////////
je sais que ma boucle et mal faite ,et que avec le fgetc je prends paski est bon,mais j'arrive pas a l'arranger >_<
Stupeflip
Messages postés
391
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
4 décembre 2007
94
18 avril 2007 à 11:13
18 avril 2007 à 11:13
Le problème c'est que j'ai l'impression que ta condition
Pourquoi ne fais-tu pas un fgets ainsi tu pourrais scanner une chaine de caractère ça serait plus simple non ?
if(CurrentChar==ENG1[i])ne sert à rien. Si c'est le premier ou le deuxième, bah c'est bloqué au if suivant, du coup ça reboucle comme si il n'y avait rien, tu as un donc un test unique sur le dernier caractère (le 3e).
Pourquoi ne fais-tu pas un fgets ainsi tu pourrais scanner une chaine de caractère ça serait plus simple non ?
18 avril 2007 à 02:48
Merci pour ta reponse.mais en fait meme apres avoir mis le const devant ,ca change pas trop...
j'ai essaye d'imprimer pour voir ce qui se passe au niveau de la category:
ex:mon fichier HTML est de la sorte
|CATEGORY[ŒRŽ–¥–h‰q]</title>
</head>
et je ne veux prendre keskia apres le tableau
int CATEGORY[9]={67,65,84,69,71,79,82,89,91};// ce qui est le code ASCII de "CATEGORY["
et quand je vois un "<"//son code ASCII c'est 60//je m'arrete de rentrer les donnees dans mon tableau de CAT[i];
donc j 'Ai essaye d'Afficher a l'ecran pour voir skispasse:
do
{
CurrentChar = fgetc(TheFile );
{
// printf("%d\n",CurrentChar);
for(i=0;i<9;i++)
{ // printf("%d\n",Cursor_position);printf("%d\n",CurrentChar);
if(CATEGORY[i]==CurrentChar)
Cursor_position++;
}
i=0;
do{ //fill the array category with the name of the category
CAT[i]= (char)CurrentChar;
printf("%c\t",CAT[i]);
i++; }
while(CurrentChar=!60);
/////////////////////////////////////////////////////
mais il M'affiche pas seulement skiya ds category mais tous le fichier html depuis le debut,et a un certain moment ca plante(peut etre overflow)
donc le probleme est ds ma boucle je penses je fais fgetc de tous les char mais je veux prendre que certains char apres certaines string,mais je prends tous les char du fichier.....
tu aurais pas une idee..