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
| #include <math.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char * read_line (char const * const s_filename, unsigned int i_line_num){
FILE * p_file = NULL;
char s_line [BUFSIZ];
unsigned int cpt = 1;
/* ----- Ouverture du fichier ----- */
p_file = fopen (s_filename, "r");
if (!p_file){
/* Erreur: impossible d'ouvrir le fichier. */
return NULL;
}
/* ----- Lecture de la ligne du fichier ----- */
while (fgets (s_line, BUFSIZ, p_file)){
if (cpt == i_line_num){
/* La ligne a ete trouvee, on enleve le caractere
de saut de ligne s'il est present. */
char * p = strchr (s_line, '\n');
if (p)
{
*p = 0;
}
/* On sort de la boucle. */
break;
}
cpt++;
}
/* ----- Fermeture du fichier ----- */
fclose (p_file);
return s_line;
}
int main (){
double x,y,z,occup;
char * read_line();
char crystal[50],At[10];
/*...........*/
sscanf(read_line(crystal,5),"%s %lf %lf %lf %lf",&At,&x,&y,&z,&occup);
printf("%s\nAt=%s\nx=%lf\ny=%lf\nz=%lf\noccup=%lf\n",read_line(crystal,5),At,x,y,z,occup);
return(0);
} |
Partager