/* I/O demonstration program */ #include iolib.h #include float.h #include printf2.h #include args.h #include transcen.h int infile,outfile; char buf[80],chr,file[16]; int a,b,c,*d,line; double e,f; main() { /* parse command line BEFORE opening any files */ setargs(); printf("hello, world\n"); printf(" u: %u \n",-1); /* u: 65535 */ printf(" x: %x \n",-1); /* x: ffff */ printf(" s: %s \n","hello"); /* s: hello */ printf(" c: %c \n",65); /* c: A */ /* string I/O */ puts("type a string: "); gets(buf); puts(buf); /* character I/O */ puts("\ntype a character:"); chr=getchar(); puts(" The character was "); putchar(chr); putchar(13); alpha(); printf("The Fibbonacci sequence...%d, %d, %d, %d\n", 1,1,2,3); printf("the square root of 2 is %15.12f\n",sqrt(2.)); printf("more numbers: c=%12.3e, mp/me=%9.3e, hbar=%e\n", 2.9979e8, 1836.11811, 1.054e-27); printf("-14=%e, -.0014=%e, 14=%e, .0014=%e\n", -14., -.0014, 14., .0014); line=0; &line; outf(1.); outf(1.1); outf(1.01); outf(1.001); outf(1.0001); outf(1.00001); outf(1.000001); outf(1.0000001); outf(1.00000001); outf(1.000000001); outf(1.0000000001); outf(1.00000000001); outf(1.000000000001); outf(1.0000000000001); b=17; c=6; d=&b; e=2.; f=3.; a=b; out(a); a=e; out(a); a=b|c; out(a); a=b^c; out(a); a=b&c; out(a); putchar(13); a=b==c; out(a); a=b==e; out(a); a=e==b; out(a); a=e==f; out(a); a=b!=c; out(a); putchar(13); a=b=c; out(a); a=b>c; out(a); a=b<>c; out(a); a=b+c; out(a); a=b+e; out(a); a=e+b; out(a); a=e+f; out(a); putchar(13); a = b - c; a=b-c; out(a); a=b*c; out(a); a=b*e; out(a); a=e*b; out(a); a=e*f; out(a); putchar(13); a=b/c; out(a); a=b%c; out(a); a=b++; out(a); a= ++b; out(a); a= b--; out(a); putchar(13); a= --b; out(a); a= *d; out(a); a= &b; out(a); e=a; out(ifix(e)); a=d[1]; out(a); putchar(13); /* get file names from command line */ if(getarg(1,file,16)==-1)exit(); infile=fopen(file,"r"); if(getarg(2,file,16)==-1)exit(); outfile=fopen(file,"w"); /* copy first file to second */ while((c=getc(infile))!=-1)putc(c,outfile); fclose(outfile); } out(a) int a; { printf("\t%d: %d",line++,a); } alpha() { 1; puts("\nentering alpha"); beta(); gamma(); gamma(); puts("\nalpha signing off"); } beta() { 2; puts("\nentering beta"); gamma(); puts("\nbeta signing off"); } gamma() { 3; puts("\nentering gamma"); err("just testing"); puts("\ngamma signing off"); } putnum(x) int x; { if(x<0){x=-x; putchar('-');} if(x>9)putnum(x/10); putchar('0'+x%10); } outf(x) double x; { printf(" %16.13f \n",x); } .