Pointeurs et vecteurs en C

Fermé
Laura - 14 mai 2003 à 09:44
 pouet - 14 mai 2003 à 12:33
Bonjour et merci a tous, j'ai un probleme en C, en effet je debute depuis quelques jours en C,je n y comprends presque rien pourtant je fais de mon mieux, et c'est surtout les pointeurs que je comprends le moins.
j'essaye depuis quelques jours a mettre des caracteres dans un vecteur qui n'est autre qu'un ensemble de pointeurs(enfin je pense que c'est ça!!!), mais quand je demande d'afficher ce vecteur le contenu est vide.
je veux par exemple lire l'expression suivante :
((1,2),3,(4,5))
et la mettre dans un vecteur de pointeur TAB, et surtout pouvoir faire appel a un element du TAB, par exemple TAB[4],mais il faut que mon TAB soit def à partir de pointeurs !!
Aidez moi svp...ça fait des jours que je me fixe dessus et que je n y arrive pas !!...c'est vraiment à devenir folle !!
Merci
le programme est le suivant:

#include<stdio.h>
#include<stdlib.h>
char *TAB;
FILE *fichier;

main(){
int i;
fichier=fopen()"fich.txt","r");
topologie=(char*)malloc(sizeof(char)*(3*seqNum+1));
for (i=0 ; i<15;i++)
{fscanf(fichier,"%c",topologie[i]);
printf("%c\n",topologie[i]);
}
}

1 réponse

guillaume@fallen:~$ gcc -Wall -ansi -pedantic test2.c
test2.c:6: warning: return type defaults to `int'
test2.c: In function `main':
test2.c:8: too few arguments to function `fopen'
test2.c:8: syntax error before string constant
test2.c:9: `topologie' undeclared (first use in this function)
test2.c:9: (Each undeclared identifier is reported only once
test2.c:9: for each function it appears in.)
test2.c:9: `seqNum' undeclared (first use in this function)

commence par lire la reponse que je t ai donne dans ton post initial.

ensuite expose ton probleme plus clairement.
que cherches tu as faire?
res = fgets(res, _LEN_GET_, fichier);
printf("res: %s\n, res);
peut etre?
en C pour manipuler des caracteres, c est le type char et c est tout.
pourquoi parles tu de vecteurs, c est un projet de mathematiques?

--
pouet
0
Bonjour pouet,
Merci pour tes reponses, mais il est vrai que je comprends peu le langage informatique, comme tu l'as lu j'ai commencé il n ya que quelques jours, et je suis vraiment perdu. A l'origine je fais des math, et je dois lire dans un fichier un ensemble de caracteres qui sont sous cette forme :((1,2),3,(4,5)) et mettre chaque caractere dans une case d'un vecteur ou peut etre que dans le langage informatique il faut dire il faut pointer sur chaque caractere, pour pouvoir faire appel au i-eme caractere, par exemple ici le 4-ieme caractere est ','(la virgule ); ceci me pose deja un probleme !!! et une fois ceci fait il faut ensuite regarder si tel ou tel caractere est un entier ou un caractere '(' ou ')' ou ','...mais ceci est un deuxieme probleme qui se fait une fois la lecture faite.
Merci Pouet,
PS: Tu as le meme prenom que mon prof de statistique cette année (mais je ne pense pas que ce soit toi!!)
0
pouet > Laura
14 mai 2003 à 12:33
salut,

bref tu dois stcoker une chaine de caracteres .
en C, tu dois faire appel aux tableaux (oublie les vecteurs ca n existe pas en C)
par exemple, pour stocker 5 lettres, tu as besoin d un tableau de 5 char:
char pouet[5];
pour les pointeurs, c est bateau une fois que tu as trouve ta maniere de voir.
ex, prends une maison. l adresse de cette maison, c est le 15 rue des pouets.
tu fais la difference entre la maison et son adresse?
et bien pour un char c est pareil.
char toto = 'c'; /* ton char */
char *pointeur = &toto; /* pointeur a l adresse de toto */
print toto: c
print pointeur: 0x0000415645415 /* une adresse en ram */
donc si tu connais l e nombre de caracteres que tu vas devoir stocker, tu fais un boucle qui va les lire un par un et les tocker dans une case de ton tableau.
tableau[0] = getc(...
tableau[1] = getc(...
si tu ne sais pas, combien de caracteres contient ton fichier, tu dois utiliser les fonctions de mon post ci dessus.
cherche de la doc sur fgets pour comprendre.

bonne chance,

ps: drole de prenom pour un prof...

--
pouet
0