fork download
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4.  
  5. int read_file(const char *filename, double **prob, char **sense);
  6.  
  7. int main(){
  8.  
  9. double *iprob;
  10. char *sense;
  11.  
  12. read_file("test.txt", &iprob, &sense);
  13.  
  14. printf("Main: %lf %c\n", iprob[0], sense[0]);
  15. printf("Main: %lf %c\n", iprob[1], sense[1]);
  16.  
  17. return 0;
  18. }
  19.  
  20.  
  21. int read_file(const char *filename, double **prob, char **sense){
  22.  
  23. FILE *fp;
  24. char line[100], temp[80];
  25. int i = 0;
  26. fp = stdin;//mock
  27. /*
  28.   fp = fopen(filename, "r");
  29.   if (fp == NULL){
  30.   fprintf(stderr,"File %s not found!\n", filename);
  31.   return 0;
  32.   }
  33. */
  34. *prob = (double *)malloc(sizeof(double) * 100);
  35. *sense = (char *)malloc(sizeof(char) * 100);
  36.  
  37. while( fgets(line, 100, fp) != NULL){
  38.  
  39. //prob[i] = (double *)malloc(sizeof(double));
  40. //sense[i] = (char *)malloc(sizeof(char));
  41.  
  42. if ( sscanf(line, "%s %lf %c", temp, &(*prob)[i], &(*sense)[i]) < 3 ){
  43.  
  44. fprintf(stderr, "Parsing error detected at line %d!", i);
  45. fclose(fp);
  46. return 0;
  47. }
  48. else{
  49.  
  50. printf("%lf %c\n", (*prob)[i], (*sense)[i]);
  51. }
  52. i++;
  53. }
  54. fclose(fp);
  55. return 1;
  56. }
Success #stdin #stdout 0s 2424KB
stdin
blahblah 0.12 G
testtesttest 0.33 E
stdout
0.120000 G
0.330000 E
Main: 0.120000 G
Main: 0.330000 E