|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #include "parse.h"
- void getFromString (const char* buf, int* n){
- *n=atoi(buf);
- printf("%d\n",*n);
- }
-
- void getFromString (const char* buf, size_t* n){
- *n=(size_t)(atoi(buf));
- printf("%lu\n",*n);
- }
-
- void getFromString (const char* buf, double* n){
- *n=(double)(atof(buf));
- printf("%15.6e\n",*n);
- }
-
- void getFromString (const char* buf, char* n){
- sscanf(buf,"%s",n);
- printf("%s\n",n);
- }
-
- /*Extract droplet species and mole fractions*/
- int parseDrop(FILE* input, const char* keyword,char dropSpec[][10],double dropMole[],const size_t bufLen){
- char buf[bufLen];
- char buf1[bufLen];
- char comment[1];
- char *ret;
- while (fgets(buf,bufLen, input)!=NULL){
- comment[0]=buf[0];
- if(strncmp(comment,"#",1)==0){
- }
- else{
- strcpy(buf1,buf);
- ret=strtok(buf,"=");
- //DEBUG
- //printf("Current KEYWORD in input: %20s \n",ret);
- if(strcmp(ret,keyword)==0){
- char* modifiedFuel = NULL;
- char* equalSign = strstr(buf1,"=");
- if(equalSign!= NULL){
- modifiedFuel = new char [strlen(equalSign)+1];
- strcpy(modifiedFuel,equalSign+1);
- //DEBUG
- //printf("modifiedFuel:%20s \n",modifiedFuel);
- char* token = strtok(modifiedFuel,",");
- int index = 0 ;
- char* list[2];
- while(token!= NULL){
- //DEBUG
- //printf("TOKEN :%20s \n",token);
- list[index] = token;
- token = strtok(NULL,",");
- index++;
- }
- //for (int i=0;i<2;i++){
- // printf("%20s",list[i]);
- //}
- for(int i=0;i<2;i++){
- char* name= strtok(list[i],":");
- char* value = strtok(NULL,":");
- //DEBUG
- // printf("Name:%10s,Value:%10s \n",name,value);
- strcpy(dropSpec[i],name);
- dropMole[i]=std::stod(value);
- // printf("In the dropArray,Name:%10s,Value:%.3f\n",dropSpec[i],dropMole[i]);
- }
- delete[] modifiedFuel;
- }
- printf("%10s:%10s:%.3f,%10s:%.3f\n",keyword,dropSpec[0],dropMole[0],dropSpec[1],dropMole[1]);
- //printf("IF statement is execuated. \n");
- rewind(input);
- //delete[] modifiedFuel;
- return(0);
- }
- }
- }
- rewind(input);
- return(-1);
- }
|