Incident de segmentation C (en lecture de fic
____22
Messages postés
101
Statut
Membre
-
mype Messages postés 2449 Statut Membre -
mype Messages postés 2449 Statut Membre -
Bonjour,
le code:
fich.txt contient 1 sur la 1ere ligne puis 2 ...
j'ai compilé ce prog avec gcc (sous linux)
j'obtiens
u»EÜÀt)EÔ9EàtUìMÔU¸EìMðéÂþÿÿMìM¸é·þÿÿUìU¸é¬þÿÿMÔEì9MðE¸þÿÿUìëËÇEÈ
»EÜÀt)EÔ9EàtUìMÔU¸EìMðéÂþÿÿMìM¸é·þÿÿUìU¸é¬þÿÿMÔEì9MðE¸þÿÿUìëËÇEÈ
ÆÒu»EÜÀt)EÔ9EàtUìMÔU¸EìMðéÂþÿÿMìM¸é·þÿÿUìU¸é¬þÿÿMÔEì9MðE¸þÿÿUìëËÇEÈ
Incident de segmentation
ou aussi des fois:
l previous options combined
previous options combined
Incident de segmentation
le code:
#include <stdio.h>
main ()
{
FILE *fp;
char *s;
fp = fopen("fich.txt", "r");
if (!fp) exit(1);
while(!feof(fp))
{
fscanf(fp, "%s\n",&s); /* copy some info */
printf("%s\n",s);
}
fclose(fp);
}
fich.txt contient 1 sur la 1ere ligne puis 2 ...
j'ai compilé ce prog avec gcc (sous linux)
j'obtiens
u»EÜÀt)EÔ9EàtUìMÔU¸EìMðéÂþÿÿMìM¸é·þÿÿUìU¸é¬þÿÿMÔEì9MðE¸þÿÿUìëËÇEÈ
»EÜÀt)EÔ9EàtUìMÔU¸EìMðéÂþÿÿMìM¸é·þÿÿUìU¸é¬þÿÿMÔEì9MðE¸þÿÿUìëËÇEÈ
ÆÒu»EÜÀt)EÔ9EàtUìMÔU¸EìMðéÂþÿÿMìM¸é·þÿÿUìU¸é¬þÿÿMÔEì9MðE¸þÿÿUìëËÇEÈ
Incident de segmentation
ou aussi des fois:
l previous options combined
previous options combined
Incident de segmentation
A voir également:
- Incident de segmentation C (en lecture de fic
- Accusé de lecture gmail - Guide
- Confirmation de lecture whatsapp - Guide
- Télécharger livre de lecture ce2 gratuit pdf - Télécharger - Éducatifs
- Lecture epub sur pc - Guide
- Incident tnt - Guide
13 réponses
pardon il y a aussi #include <string.h> dans le code
pour te répondre mype, \n et &s sont nécéssaires
ce code avait deja marché auparavant, maintenant ça marche plus
parceque peut etre la mémoire est saturée
pour te répondre mype, \n et &s sont nécéssaires
ce code avait deja marché auparavant, maintenant ça marche plus
parceque peut etre la mémoire est saturée
si tu veux voici un programme qui fait ce que tu veux faire (les nombres dans le fichier texte vont jusqu'a 36 et ils sont chacun sur une ligne)
#include <stdio.h>
#include <string.h>
main ()
{
FILE *fp;
char *s;
int i;
fp = fopen("fich.txt", "r");
if (!fp)
exit(1);
else
{
s=malloc(100);
for(i=0;i<100;i++)
fscanf(fp, "%c",&s[i]);
printf("%s\n",s);
}
fclose(fp);
free(s);
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je viens de réessayer mon programme
il affiche:
emory for thread-local data: ABORT
mory for thread-local data: ABORT
cate memory for thread-local data: ABORT
Incident de segmentation
pour ton programme il y a un probleme a la compilation:
renaud14 <5> gcc test.c
test.c: Dans la fonction « main »:
test.c:15: attention : affectation transforme un entier en pointeur sans transtypage
il affiche:
emory for thread-local data: ABORT
mory for thread-local data: ABORT
cate memory for thread-local data: ABORT
Incident de segmentation
pour ton programme il y a un probleme a la compilation:
renaud14 <5> gcc test.c
test.c: Dans la fonction « main »:
test.c:15: attention : affectation transforme un entier en pointeur sans transtypage
c'est juste un warning je pense c'est pas une erreur comme je suis pas sur linux en ce moment sa me le dit pas
dans ce cas essaye ça
dans ce cas essaye ça
#include <stdio.h>
#include <string.h>
int main ()
{
FILE *fp;
char *s;
int i;
fp = fopen("fich.txt", "r");
if (!fp)
exit(1);
else
{
s=malloc(100);
for(i=0;i<100;i++)
fscanf(fp, "%c",&s[i]);
printf("%s\n",s);
}
fclose(fp);
free(s);
return 0;
}
en enlevant s=malloc(100);
ça marche presque j'obtiens:
1
2
+
1
5
+
-
5
*
·0îñ·
free(): invalid pointer 0xb7f36540!
Incident de segmentation
(fich.txt contient 1\n2\n+\n1\n5\n+\n-\n5\n*\n
(\n retour a la ligne)
presque parceque incident de segmentation aurait stoppeé le reste du programme en cours
ça marche presque j'obtiens:
1
2
+
1
5
+
-
5
*
·0îñ·
free(): invalid pointer 0xb7f36540!
Incident de segmentation
(fich.txt contient 1\n2\n+\n1\n5\n+\n-\n5\n*\n
(\n retour a la ligne)
presque parceque incident de segmentation aurait stoppeé le reste du programme en cours
si tu connais le nombre de ligne tu peux utiliser ce programme et changer le nombre de ligne en fonction de ton fichier
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define LIGNE 6
int main ()
{
FILE *fp;
char *s;
int i;
fp = fopen("fich.txt", "r");
if (!fp)
exit(1);
else
{
s=malloc(100);
for(i=1;i<=LIGNE;i++){
fscanf(fp,"%s",s);
printf("%s\n",s);}
}
fclose(fp);
free(s);
return 0;
}