On May 2, 6:28 pm, Ian Collins <ian-n...@[EMAIL PROTECTED]
> wrote:
> Bill Cunningham wrote:
> > I have looked this program up and down and I don't see what's
wrong with
> > it. But it always breaks and gives me an error "mode error" no matter
which
> > mode binary or text I choose. This simple program is supposed to take
as
> > argv[1] a "b" or "t" for binary or text. It's not taking anything.
>
> > #include <stdio.h>
>
> > int main(int argc, char **argv) {
> > char *b;
> > int a;
> > FILE *ifp,*ofp;
> > if (argc!=4) {
> > fprintf(stderr,"usage error\n");
> > return -1;
> > }
> > if (argv[1]=="b") {
> > b="rb";
> > }
> > if (argv[1]=="t") {
> > b="rt";
> > }
> > if (argv[1]!="t"||argv[1]!="b") {
> > fprintf(stderr,"mode error\n");
> > return -1;
> > }
> > if ((ifp=fopen(argv[2],b))==0) {
> > fprintf(stderr,"open error i\n");
> > return -1;
> > }
> > if ((ofp=fopen(argv[3],b))==0) {
> > fprintf(stderr,"open error o\n");
> > return -1;
> > }
> > while(a!=EOF)
> > a=fgetc(ifp);
> > fputc(a,ofp);
> > printf("done\n");
> > return 0;}
>
> > Is anyone good enough to glance at this and see what's wrong?
>
> Someone stole the whitespace?
>
> Why are you comparing characters with string literals? Surly your
> compiler gave you some warnings?
My compiler didn't provide any warnings for this code, did yours?
--
Robert Gamble


|