Bonjour a tous,

Je me doute que cette question a été vue 10000 fois mais je ne trouve pas sur ce forum qui m'a déja bien aidé de nombreuse fois.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int cpteblocks()
{
 
	char lignelue [256];
	int nb_blocks=0;
	char tab[]="ADD";
	FILE* batchFile;
	batchFile=fopen("D:\\Users\\xxx\\Desktop\\xxx","r");
    while(fgets(lignelue, 80, batchFile) != NULL) {
 
        if(strstr(lignelue, tab) != NULL) {
			nb_blocks ++;
		}
	}
 
	fclose(batchFile) ;
	batchFile=NULL;
 
	return nb_blocks;
}
 
int main()
{
int i=0;
int blocks = cpteblocks() ;
char * tab_id = NULL;
tab_id = malloc((blocks) * (sizeof(80)));
//char tab_id[2][80];
char * ligne_lue;
FILE* batch;
batch=fopen("D:\\Users\\xxxx\\Desktop\\xxx","r");
 
    if (batch==NULL)
    {
        fputs("erreur a l'ouverture du fichier\n",stderr);
        return EXIT_FAILURE;
    }
 
while (fgets(ligne_lue, 80, batch) != NULL)
    {
        strcpy (tab_id[i],ligne_lue);
        i++;
        }
 
        for (i=0;i<=i;i++)
            {
            printf ("%s\n",tab_id[i]);
            }
return (0);
}
En warning, il me dit que strcopy attends un pointeur vers char et pas un char, pourtant il me semble que c'est ce que j'ai fais.

Et j'ai un petit segmentation fault, je soupconne ma syntaxe même s'il n'y a pas d'erreur a la compilation.

Merci