/* exercise3-5 - Write the function itob(n,s,b) that converts the * integer n into a base b character representation in the string s. * In particular, itob(n,s,16) formats s as a hexadecimal integer in s. * * exercise3-5.c - implements itob() with the modifications proposed in * exercise3-5. Prompts the user for a number to transform and a base * to transform it into. Numbers larger than 9 are printed as a letter * [a-j] with a number of prime marks behind it. Virtually any base can * be chosen, the only limit is the length of the string. Try a fun * base, like 60 or 300 ^_^. */ int main() { char line[MAXLINE]; int x, base; printf("enter a number to transform with itoa():\n"); gets(line); x = atoi(line); printf("enter a number to transform with itoa():\n"); gets(line); base = atoi(line); newitoa(x, line, base); printf("%s\n", line); return 0; }
void wgzmat(char *filename, int atomnum, ATOM atom[], MOLINFO minfo) { FILE *fpout; int i; /* int index; */ char tmpchar0[10]; char tmpchar1[10]; char tmpchar2[10]; char tmpchar3[10]; if ((fpout = fopen(filename, "w")) == NULL) { fprintf(stderr, "Cannot open file %s, exit\n", filename); exit(1); } intercoord(atomnum, atom); fprintf(fpout, "%s\n", "--Link1--"); fprintf(fpout, "%s%s\n", "%chk=", minfo.chkfile); fprintf(fpout, "%s\n\n", minfo.gkeyword); fprintf(fpout, "%s\n\n", "remark line goes here"); fprintf(fpout, "%d%4d\n", minfo.icharge, minfo.multiplicity); element(atomnum, atom); for (i = 0; i < atomnum; i++) { newitoa(i + 1, tmpchar0); if (i == 0) { fprintf(fpout, "%5s\n", atom[i].element); continue; } if (i == 1) { strcpy(tmpchar1, "b"); strcat(tmpchar1, tmpchar0); fprintf(fpout, "%5s%5d%8s\n", atom[i].element, atom[i].bondatom + 1, tmpchar1); continue; } if (i == 2) { strcpy(tmpchar1, "b"); strcat(tmpchar1, tmpchar0); fprintf(fpout, "%5s%5d%8s", atom[i].element, atom[i].bondatom + 1, tmpchar1); strcpy(tmpchar2, "a"); strcat(tmpchar2, tmpchar0); fprintf(fpout, "%5d%8s\n", atom[i].angleatom + 1, tmpchar2); continue; } strcpy(tmpchar1, "b"); strcat(tmpchar1, tmpchar0); fprintf(fpout, "%5s%5d%8s", atom[i].element, atom[i].bondatom + 1, tmpchar1); strcpy(tmpchar2, "a"); strcat(tmpchar2, tmpchar0); fprintf(fpout, "%5d%8s", atom[i].angleatom + 1, tmpchar2); strcpy(tmpchar3, "t"); strcat(tmpchar3, tmpchar0); fprintf(fpout, "%5d%8s\n", atom[i].twistatom + 1, tmpchar3); } fprintf(fpout, "Variables:\n"); fprintf(fpout, "b2= %8.4lf\n", atom[1].bond); fprintf(fpout, "b3= %8.4lf\n", atom[2].bond); fprintf(fpout, "a3= %8.4lf\n", atom[2].angle); for (i = 3; i < atomnum; i++) { newitoa(i + 1, tmpchar0); strcpy(tmpchar1, "b"); strcat(tmpchar1, tmpchar0); strcpy(tmpchar2, "a"); strcat(tmpchar2, tmpchar0); strcpy(tmpchar3, "t"); strcat(tmpchar3, tmpchar0); fprintf(fpout, "%s= %8.4lf\n", tmpchar1, atom[i].bond); fprintf(fpout, "%s= %8.4lf\n", tmpchar2, atom[i].angle); fprintf(fpout, "%s= %8.4lf\n", tmpchar3, atom[i].twist); } fprintf(fpout, "\n"); fclose(fpout); }
void wjzmat(char *filename, int atomnum, ATOM atom[], MOLINFO minfo) { FILE *fpout; int i; /* int index; */ char tmpchar0[10]; char tmpchar1[10]; char tmpchar2[10]; char tmpchar3[10]; if ((fpout = fopen(filename, "w")) == NULL) { fprintf(stderr, "Cannot open file %s, exit\n", filename); exit(1); } intercoord(atomnum, atom); fprintf(fpout, "%s\n", "This Jaguar input file generated by Antechamber"); fprintf(fpout, "%s\n", "&gen"); fprintf(fpout, "%s%d\n", "molchg=", minfo.icharge); fprintf(fpout, "%s%d\n", "multip=", minfo.multiplicity); fprintf(fpout, "igeopt=1\n"); fprintf(fpout, "basis=6-31G*\n"); fprintf(fpout, "dft=b3lyp\n"); fprintf(fpout, "%s\n", "&"); fprintf(fpout, "%s\n", "&zmat"); for (i = 0; i < atomnum; i++) { newitoa(i + 1, tmpchar0); if (i == 0) { fprintf(fpout, "%8s\n", atom[i].name); continue; } if (i == 1) { strcpy(tmpchar1, "r"); strcat(tmpchar1, tmpchar0); fprintf(fpout, "%8s%8s%8s\n", atom[i].name, atom[atom[i].bondatom].name, tmpchar1); continue; } if (i == 2) { strcpy(tmpchar1, "r"); strcat(tmpchar1, tmpchar0); fprintf(fpout, "%8s%8s%8s", atom[i].name, atom[atom[i].bondatom].name , tmpchar1); strcpy(tmpchar2, "a"); strcat(tmpchar2, tmpchar0); fprintf(fpout, "%8s%8s\n", atom[atom[i].angleatom].name , tmpchar2); continue; } strcpy(tmpchar1, "r"); strcat(tmpchar1, tmpchar0); fprintf(fpout, "%8s%8s%8s", atom[i].name, atom[atom[i].bondatom].name , tmpchar1); strcpy(tmpchar2, "a"); strcat(tmpchar2, tmpchar0); fprintf(fpout, "%8s%8s", atom[atom[i].angleatom].name , tmpchar2); strcpy(tmpchar3, "d"); strcat(tmpchar3, tmpchar0); fprintf(fpout, "%8s%8s\n", atom[atom[i].twistatom].name, tmpchar3); } fprintf(fpout, "&\n&zvar\n"); fprintf(fpout, "r2= %13.8lf\n", atom[1].bond); fprintf(fpout, "r3= %13.8lf ", atom[2].bond); fprintf(fpout, "a3= %13.8lf\n", atom[2].angle); for (i = 3; i < atomnum; i++) { newitoa(i + 1, tmpchar0); strcpy(tmpchar1, "r"); strcat(tmpchar1, tmpchar0); strcpy(tmpchar2, "a"); strcat(tmpchar2, tmpchar0); strcpy(tmpchar3, "d"); strcat(tmpchar3, tmpchar0); fprintf(fpout, "%s= %13.8lf ", tmpchar1, atom[i].bond); fprintf(fpout, "%s= %13.8lf ", tmpchar2, atom[i].angle); fprintf(fpout, "%s= %13.8lf\n", tmpchar3, atom[i].twist); } fprintf(fpout, "&\n\n"); fclose(fpout); }