Probleme de pointeur en C
Hellnino
-
Hellnino -
Hellnino -
Bonjour à tous,
Je viens pour un problème sur lequel je suis depuis le début d'après midi et là j'en peux plus :
int connect_compte(char serv[], char log[])
{
FILE* fichier = NULL;
fichier = fopen("comptes_client.txt", "r");
char tab[TAILLE] = {0};
int compt=0;
int choix;
if ( fichier != NULL )
{
while (fgets(tab, TAILLE, fichier) != NULL)
{
compt++;
sscanf(tab, "%s %s\n", &serv[compt], &log[compt]);
printf("%d. %s - %s\n", compt, &serv[compt], &log[compt]);
}
printf("\n");
fclose(fichier);
}
printf("%s",&serv[5]);
printf("%s",&log[5]);
printf("\r\nVotre choix : ");
scanf("%d", &choix);
printf("\r\n");
return choix;
}
Il me crée bien mon menu avec les différents comptes qui sont présents dans mon fichier, mais le problème c'est quand je fais ce code :
printf("%s",&serv[5]);
printf("%s",&log[5]);
il devrait m'afficher le 5e serveur et le 5e login, mais en fait j'ai une liste de 14 login/serveur et à partir du 5e login/serveur il m'affiche la première lettre de chaque sauf le dernier qui m'écrit en entier...
Si quelqu'un pouvait m'aider ce serait gentil, merci.
Cordialement.
Je viens pour un problème sur lequel je suis depuis le début d'après midi et là j'en peux plus :
int connect_compte(char serv[], char log[])
{
FILE* fichier = NULL;
fichier = fopen("comptes_client.txt", "r");
char tab[TAILLE] = {0};
int compt=0;
int choix;
if ( fichier != NULL )
{
while (fgets(tab, TAILLE, fichier) != NULL)
{
compt++;
sscanf(tab, "%s %s\n", &serv[compt], &log[compt]);
printf("%d. %s - %s\n", compt, &serv[compt], &log[compt]);
}
printf("\n");
fclose(fichier);
}
printf("%s",&serv[5]);
printf("%s",&log[5]);
printf("\r\nVotre choix : ");
scanf("%d", &choix);
printf("\r\n");
return choix;
}
Il me crée bien mon menu avec les différents comptes qui sont présents dans mon fichier, mais le problème c'est quand je fais ce code :
printf("%s",&serv[5]);
printf("%s",&log[5]);
il devrait m'afficher le 5e serveur et le 5e login, mais en fait j'ai une liste de 14 login/serveur et à partir du 5e login/serveur il m'affiche la première lettre de chaque sauf le dernier qui m'écrit en entier...
Si quelqu'un pouvait m'aider ce serait gentil, merci.
Cordialement.
A voir également:
- Probleme de pointeur en C
- Pointeur souris - Guide
- Curseur Windows 10 : comment bien voir la souris à l'écran - Guide
- Le pointeur de mon pc portable ne marche plus - Guide
- Pointeur laser publicitaire ✓ - Forum Loisirs / Divertissements
- Pointeur souris avec rond de chargement qui clignote sans arrêts ✓ - Forum Windows
2 réponses
Bonjour,
Je pense que c'est la boucle.
Premier tour:
On écrit le nom du serveur et le login au début les tableaux de caractères respectifs.
Affichage.
Deuxième tour:
On reprend le même tableau et à partir du deuxième caractère on écrase les noms précédents avec les nouveaux.
Affichage à partir du deuxième caractère.
et ainsi de suite.
On a donc au final deux tableaux contenant chacun à l'indice i la première lettre du nom lu à l'itération i de la boucle.
Le dernier n'a été écrasé par personne donc il est entier.
M.
Je pense que c'est la boucle.
while (fgets(tab, TAILLE, fichier) != NULL) { compt++; sscanf(tab, "%s %s\n", &serv[compt], &log[compt]); printf("%d. %s - %s\n", compt, &serv[compt], &log[compt]); }
Premier tour:
On écrit le nom du serveur et le login au début les tableaux de caractères respectifs.
Affichage.
Deuxième tour:
On reprend le même tableau et à partir du deuxième caractère on écrase les noms précédents avec les nouveaux.
Affichage à partir du deuxième caractère.
et ainsi de suite.
On a donc au final deux tableaux contenant chacun à l'indice i la première lettre du nom lu à l'itération i de la boucle.
Le dernier n'a été écrasé par personne donc il est entier.
M.
Hellnino
Du coup que me propose tu de faire, car j'y ai passé ma journée, du coup j'ai besoin d'un oeil neuf pour m'aider merci de ton aide...