Bonjour je dois faire des commandes unix simplifiées dont colrm,cut,grep et look. Pour chacune de ces commandes notre programme doit déclencher une erreur si une des lignes fait plus de 81 caractères. J'ai déjà codé toutes ces commandes (4 fichier.c) et j'ai créer un fichier d'en tête pour l'erreur. Mais je vois pas comment intégrer mon en tête pour déclencher l'erreur . Pouvez-vous m'éclaircir ? Merci
Pour colrm.c:
Pour error.h:
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 #include <stdio.h> #include <stdlib.h> #include "../error.h" int main (int argc, char *argv[]) { int colonne_une=atoi(argv[1]); /* premier argument */ int colonne_deux=colonne_une; /* cas ou si le deuxieme argument n est pas precisé */ int colonne_actuelle=1; char c; /*caractere courant*/ if (argc==3){ /* dans le cas ou le second argument est precisé */ colonne_deux=atoi(argv[2]); } while ((c=getchar())!=EOF){ if (c!='\n') { if (!(colonne_actuelle>=colonne_une && colonne_actuelle<=colonne_deux)){ /* si on est pas dans les bornes [colonne_une;colonne_deux] */ printf("%c",c); } colonne_actuelle++; /*on passe a la colonne suivante */ } else { printf("%c",c); /* on imprime le retour chariot */ colonne_actuelle=1; /*on repasse a la premiere colonne */ } } return 0; }
Merci d'avance.
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 #define MAXLINE 81 extern int error(char line[]){ char c; int cpt = 0; while(((c=getchar())!='\n') && (cpt < MAXLINE)){ if (c==EOF){ return EOF; } line[cpt]=c; cpt++; if (cpt>MAXLINE) fprintf(stderr,"Erreur ligne avec plus de 81 caracteres"); } line[cpt+1]='\0'; if (cpt==MAXLINE){ return MAXLINE; } else { return cpt; } }
Partager