fork(3) download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define MAX_NUMBERS 20
  5.  
  6. void fatal(int err,const char *msg)
  7. {
  8. if(!err) return;
  9. fprintf(stderr,"%s\n",msg);
  10. exit(1);
  11. }
  12.  
  13. int ws(FILE *in)
  14. {
  15. int ch=0;
  16. fscanf(in," %c",&ch);
  17. return ch;
  18. }
  19.  
  20. int main(int argc,char *argv[])
  21. {
  22. int count=0,ret,ch,i;
  23. double tb[MAX_NUMBERS];
  24. FILE *in;
  25.  
  26. in=argc>1?fopen(argv[1],"r"):stdin;
  27. fatal(!in,"Nie odnaleziono pliku");
  28. fatal((ch=ws(in))!='<',"Nie odnaleziono znaku poczatku listy");
  29. while(((ret=fscanf(in,"%lf",tb+count))==1)&&((ch=ws(in))==';')&&(count<MAX_NUMBERS)) ++count;
  30. fatal(ret!=1,"Niepoprawny format liczby");
  31. fatal(ch==';',"Zbyt dluga lista");
  32. fatal(ch!='>',"Nie odnaleziono znaku konca listy");
  33. for(i=0;i<=count;++i) printf("%g\n",tb[i]);
  34. return 0;
  35. }
Success #stdin #stdout 0s 2252KB
stdin
<1;2;3;4;5;6;7;8>
stdout
1
2
3
4
5
6
7
8