Thread: Im at my wits end, please help

  1. #1
    Registered User
    Join Date
    Mar 2008
    Posts
    10

    Unhappy Im at my wits end, please help

    I am currently working on program for a class that is tearing me a new one. Its a gnu c program that calculates fica tax rates, gross, uses page breaks, and is compiled using make file. I have the overall structure down, I am just having some random errors when I go to run the Makefile. I just need a bit of guidance in the right direction, and I am not asking anyone to do this for me. Here are my files so far.


    Here is my main, Lab2.c
    Code:
    #include <stdio.h>
    #include <stdlib.h>//exit method
    #include <string.h>
    #include "calGross.c"
    #include "calFica.c"
    #include "newPage.c"
    
    
    
    
    
    int main(){
    //start variable declarations//
            FILE *outFile, *inFile;
            float hrs[20],pyRt[20],ficaTax[20], YTD[20], gross[20], net[20],Pgross,Pfica,Pnet, Rgross, Rfica, Rnet;
            int empNum[20],pgKt, lnKt, mxLn;
            char outputName[21], inputName[21], firstName[20][15], lastName[20][20],dep[20][6],ans ;
    //end variable declerations//
    
    
    //begin input file//
            printf("\n\n\nEnter the name of input file[max 20 characters]: ");
            scanf("%s", &inputName);
            inFile=fopen(inputName,"r");
            if(inFile==NULL){
                    printf("Input file does not exist, program terminating.");
                    exit(1);}
    //end input file//
    
    //begin output file//
            printf("\n\n\nEnter the name of file to hold the results[max 20 characters]: ");
            scanf("%s",&outputName);
            if((outFile=fopen(outputName,"r"))!=NULL){
                    printf("\n\n %s exists, do you want to overwrite existing file?(y or n):  ",outputName);
                    scanf("%*c%c",&ans);//input resp, skips 1 character in buffer(<cr>)
                    if((ans=='n')||(ans=='N')){printf("\nProgram aborted to prevent overwrite!");exit(1);}}
            outFile=fopen(outputName,"w");//opens/overwrites file if answer was not 'n'||'N'
            if(outFile==NULL){printf("\nCould not create file, program aborted!");exit(1);}
    //end output file//
    
    
    
    //begin header page//
    
            fprintf(outFile,"%27s","AMCE Inc.");
            fprintf(outFile,"\n%19s", "We are the best, you use the best!");
    
    //end header page//
    
    //Begin Total definitions
    
            pgKt=1;
            lnKt=0;
            mxLn=20;
            Pgross=0;
    Pfica=0;
            Pnet=0;
            Rgross=0;
            Rfica=0;
            Rnet=0;
    
    //End Total definitions
    
    //Begin Read Data
            int a=0;//counter for read data loop
            while((fscanf(inFile,"%i",&empNum[a]))!=EOF){
                    fscanf(inFile,"%c%c%c%f%f%f%f",&firstName[a],&lastName[a],
                            &dep[a],&YTD[a],&pyRt[a],&hrs[a]);
                    a++;}
    //End Read Data
    
    //begin calculate Payroll
    
    
            int b=a;
            a=0;
            while(a<=b){
                    if( lnKt=mxLn){
                            newPg(pgKt,lnKt,Pgross,Pfica,Pnet,Rgross,Rfica,Rnet,outFile);}//new page
            grossCalc(a, pyRt,hrs, gross);
            ficaCalc(a,ficaTax,gross,YTD);
            fprintf(outFile,"%2i%-10s%-10s%10.2f%10.2f%10.2f%10.2f\n",empNum[a],firstName[a],lastName[a],YTD[a],gross[a],ficaTax[a],net[a]);}//end print ln
            lnKt++;
            Pgross=Pgross+gross[a];
            Pfica=Pfica+ficaTax[a];
            Pnet=Pnet+net[a];
            a++;}
    //end calculate Payroll
    
    
    
    //begin closing
    
            pgKt++;
            fprintf(outFile,"\n%24s","Report Summary");
            fprintf(outFile,"\n\n%s%i","Records Processed: ",b);
            fprintf(outFile,"\n%s%f","\nTotal Gross: $",Rgross);
            fprintf(outFile,"\n%s%f","\nTotal Net  : $",Rnet);
            fprintf(outFile,"\n%s%f","\nTotal FICA : $",Rfica);
            fprintf(outFile,"%s%i","Page ",pgKt);
            fclose(inFile);
            fclose(outFile);
    //end closing
    return 0;
    }

    Here is newPage.c
    Code:
    float nwPage(int x,int y,float c,float d ,float e,float f, float g, float h, FILE *filename){
    //begin last page
            fprintf(filename,"\n\n%-25s%10.2f%10.2f%10.2f","Page Totals:",c,d,e);
            fprintf(filename,"\n%s%i","Page ",x);
            f=f+c;
            g=g+d;
            h=h+e;
    //end last page
    
    //begin new page
            x++;
            fprintf(filename,"\n\n%s%s%s%s%s%s%s","Emp#","Name","Dept.","New YTD","Gross","FICA","Net");
            y=0;
            c=0;
            d=0;
            e=0;
    //end new page
    return x,y,c,d,e,f,g,h;
    }
    Here is calGross.c
    Code:
    float grossCalc(int k,float i[], float j[], float l[]){
    
            if(j[k]<=40){
                    l[k]=i[k]*j[k];}//pay normal rate
            else if (j[k]>40){
                    i[k]=(i[k]*1.5);//change payrate for overtime
                    l[k]=i[k]*j[k];}
    
            return l[k];//return gross
    }

    Here is calFica.c

    Code:
    //begin ficaCalc function
    float ficaCalc(int p,float m[],float n[],float o[]){//fica calculations function
            float ficaLimit=(102,000);
            float ficaRate=(6.2);
            float v1= (o[p] + n[p]);//sets v1 to the sum of YTD & gross for an easily checkable value
                    if (v1 <=  ficaLimit){m[p] = (n[p] * ficaRate);}
                    else if((v1>ficaLimit)&&(o[p]<ficaLimit)){m[p] = ((ficaLimit - o[p])*ficaRate);}
                    else if (o[p] > ficaLimit){m[p] = 0;}
            v1=0;
            return m[p];}
    //end ficaCalc function
    and here is the MakeFile
    Code:
    Lab: Lab2.o calGross.o calFica.o newPage.o
            gcc -o Lab Lab2.o calGross.o calFica.o newPage.o
    Lab2.o: Lab2.c
            gcc -o Lab2.o Lab2.c
    calGross.o: calGross.c
            gcc -o calGross.o calGross.c
    calFica.o: calFica.c
            gcc -o calFica.o calFica.c
    newPage.o: newPage.c
            gcc -o newPage.o newPage.c


    and here is a list of errors that I get when I run make

    Code:
    Lab2.c:98: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘++’ token
    Lab2.c:99: error: expected ‘)’ before string constant
    Lab2.c:100: error: expected ‘)’ before string constant
    Lab2.c:101: error: expected ‘)’ before string constant
    Lab2.c:102: error: expected ‘)’ before string constant
    Lab2.c:103: error: expected ‘)’ before string constant
    Lab2.c:104: error: expected ‘)’ before string constant
    Lab2.c:105: warning: data definition has no type or storage class
    Lab2.c:105: warning: parameter names (without types) in function declaration
    Lab2.c:106: warning: data definition has no type or storage class
    Lab2.c:106: warning: parameter names (without types) in function declaration
    Lab2.c:108: error: expected identifier or ‘(’ before ‘return’
    Lab2.c:109: error: expected identifier or ‘(’ before ‘}’ token
    make: *** [Lab2.o] Error 1
    Now I have narrowed down the problem to the newPage.c, as when I comment the function and compile, these go away and are replaced with some even nastier ones, that appear to come from calGross.c. I believe the newPage.c errors have to do with me passing the output file through the function parameters, but I know of no other way to do this. Any help will be much appreciated.

  2. #2
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    1. Do not include source file. Include header files, which means you need at least one, or you should just place everything in lab2.c since the program is rather small.

    2. If you know about them, make use of structs. Currently you have many arrays that could be simplified to just a few arrays and improve readability.

    3. Indent your code consistently.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  3. #3
    Kernel hacker
    Join Date
    Jul 2007
    Location
    Farncombe, Surrey, England
    Posts
    15,677
    Your coding style is quite hard to read. Generally, don't put braces ( '{' and '}' ) on the same line as other code.

    So for example:
    Code:
            if(inFile==NULL){
                    printf("Input file does not exist, program terminating.");
                    exit(1);
             }
    Aside from style, the actual cause of those errors appear to be an extra end brace somewhere [or a missing begin brace - I haven't actually figured out which brace belongs where - just matched them using the auto-indent function of emacs].

    --
    Mats
    Compilers can produce warnings - make the compiler programmers happy: Use them!
    Please don't PM me for help - and no, I don't do help over instant messengers.

  4. #4
    uint64_t...think positive xuftugulus's Avatar
    Join Date
    Feb 2008
    Location
    Pacem
    Posts
    355
    A quick glance reveals...
    Code:
    //begin calculate Payroll
    
    
            int b=a;
            a=0;
            while(a<=b){
                    if( lnKt=mxLn){
                            newPg(pgKt,lnKt,Pgross,Pfica,Pnet,Rgross,Rfica,Rnet,outFile);}//new page
            grossCalc(a, pyRt,hrs, gross);
            ficaCalc(a,ficaTax,gross,YTD);
            fprintf(outFile,"&#37;2i%-10s%-10s%10.2f%10.2f%10.2f%10.2f\n",empNum[a],firstName[a],lastName[a],YTD[a],gross[a],ficaTax[a],net[a]);}//end print ln
            lnKt++;
            Pgross=Pgross+gross[a];
            Pfica=Pfica+ficaTax[a];
            Pnet=Pnet+net[a];
            a++;}
    //end calculate Payroll
    A stray '}' which clearly is not your while loop terminator here...
    And probably is responsible for all the errors you get.
    Hint: When having to print many many parameters, you can break a statement into multiple lines.
    In fact writing code that doesn't span over 80 columns is likely to make you popular among the console based programmers.
    Example:
    Code:
        /* Bad */
        printf("%s is %d when %d and %d goes over %d but not over %d.\n", aString, anInt_1, anInt_2, anInt_3, anInt_4, anInt_5);
        /* Good */
        printf("%s is %d when %d and %d goes over %d but not over %d.\n",
            aString, anInt_1, anInt_2, anInt_3, anInt_4, anInt_5);
       /* Or pedantically concerned with code style */
        printf
        (
            "%s is %d when %d and %d goes over %d but not over %d.\n",
            aString,
            anInt_1,
            anInt_2,
            anInt_3, 
            anInt_4, 
            anInt_5
        );
    Last edited by xuftugulus; 03-06-2008 at 06:12 AM.
    Code:
    ...
        goto johny_walker_red_label;
    johny_walker_blue_label: exit(-149$);
    johny_walker_red_label : exit( -22$);
    A typical example of ...cheap programming practices.

  5. #5
    Registered User
    Join Date
    Mar 2008
    Posts
    10
    That one simple brace was causing so much heart ache, and it would have taken ages to find with my sloppy coding. Practice makes perfect though, and I much appreciate the help. It seems this is a very friendly and helpful community. Thank you. I do have another error, but I will attempt to find it on my own before I bug you guys anymore. Thanks again.

  6. #6
    uint64_t...think positive xuftugulus's Avatar
    Join Date
    Feb 2008
    Location
    Pacem
    Posts
    355

    Talking

    Quote Originally Posted by IceEagle85 View Post
    That one simple brace was causing so much heart ache, and it would have taken ages to find with my sloppy coding. Practice makes perfect though, and I much appreciate the help. It seems this is a very friendly and helpful community. Thank you. I do have another error, but I will attempt to find it on my own before I bug you guys anymore. Thanks again.
    I haven't even drunk my morning coffee yet, but i match braces in my sleep :P
    Code:
    ...
        goto johny_walker_red_label;
    johny_walker_blue_label: exit(-149$);
    johny_walker_red_label : exit( -22$);
    A typical example of ...cheap programming practices.

  7. #7
    Registered User
    Join Date
    Mar 2008
    Posts
    10
    Ok, all of your help has been wonderful, and I am down to one last problem, and I think I will be doing good.

    As you can see I am trying to output to a file from newPage.c
    heres an abbreviated version from above
    Code:
    int main(){
    
    FILE *outFile;
    
      newPage(pgKt,lnKt,Pgross,Pfica,Pnet,Rgross,Rfica,Rnet,outFile);//here's my function call
    and here's newPage.c

    Code:
    float newPage(int x,int y,float c,float d ,float e,float f, float g, float h, FILE *filename){
    //begin last page
            fprintf(filename,"\n\n&#37;-25s%10.2f%10.2f%10.2f","Page Totals:",c,d,e);
            fprintf(filename,"\n%s%i","Page ",x);
            f=f+c;
            g=g+d;
            h=h+e;
    //end last page
    
    //begin new page
            x++;
            fprintf(filename,"\n\n%s%s%s%s%s%s%s","Emp#","Name","Dept.","New YTD","Gross","FICA","Net");
            y=0;
            c=0;
            d=0;
            e=0;
    //end new page
    return x,y,c,d,e,f,g,h;
    }
    Here are the errors
    Code:
    iceeagle85@linux-ryaf:~/CS278/Lab2a> make
    gcc -c -o Lab2.o Lab2.c
    gcc -c -o newPage.o newPage.c
    newPage.c:3: error: expected declaration specifiers or ‘...’ before ‘FILE’
    newPage.c: In function ‘newPage’:
    newPage.c:5: warning: incompatible implicit declaration of built-in function ‘fprintf’
    newPage.c:5: error: ‘filename’ undeclared (first use in this function)
    newPage.c:5: error: (Each undeclared identifier is reported only once
    newPage.c:5: error: for each function it appears in.)
    make: *** [newPage.o] Error 1
    I am trying to pass outFile through the function parameters, and it isnt working. I have to output to the file through the function due to the rules of the assignment. Is there a reasonable way to do this?
    Last edited by IceEagle85; 03-06-2008 at 02:04 PM. Reason: forgot errors

  8. #8
    uint64_t...think positive xuftugulus's Avatar
    Join Date
    Feb 2008
    Location
    Pacem
    Posts
    355
    You didn't #include <stdio.h> and the FILE struct is undefined.
    Also, you haven't opened the file for writing using fopen().
    And you didn't close main neither returned a meaningful value from main, eg return 0;
    Code:
    ...
        goto johny_walker_red_label;
    johny_walker_blue_label: exit(-149$);
    johny_walker_red_label : exit( -22$);
    A typical example of ...cheap programming practices.

  9. #9
    Kernel hacker
    Join Date
    Jul 2007
    Location
    Farncombe, Surrey, England
    Posts
    15,677
    You need to include <stdio.h> in newpage.c, and you probably will also find that you need to open the file before you pass it to newPage().

    --
    Mats
    Compilers can produce warnings - make the compiler programmers happy: Use them!
    Please don't PM me for help - and no, I don't do help over instant messengers.

  10. #10
    Registered User
    Join Date
    Jan 2007
    Location
    Euless, TX
    Posts
    144
    You might be better off not using the "FILE outfile" as a parameter in your function call. Why not just declare that inside your "newPage" function, and set the filename when you open/create the outfile?

  11. #11
    Registered User
    Join Date
    Mar 2008
    Posts
    10
    I apologize, that was just an abbreviated version. Here is the Lab2.c(main) as it stands right now.
    Code:
    #include <stdio.h>
    #include <stdlib.h>//exit method
    #include <string.h>
    #include "calGross.c"
    #include "calFica.c"
    #include "newPage.c"
    
    
    
    
    
    
    
    int main(){
    //start variable declarations//
            FILE *outFile, *inFile;
            float hrs[20],pyRt[20],ficaTax[20], YTD[20], gross[20], net[20],Pgross,Pfica,Pnet, Rgross, Rfica, Rnet;
            int empNum[20],pgKt, lnKt, mxLn;
            char outputName[21], inputName[21], firstName[20][15], lastName[20][20],dep[20][6],ans ;
    //end variable declerations//
    
    
    //begin input file//
            printf("\n\n\nEnter the name of input file[max 20 characters]: ");
            scanf("%s", &inputName);
            inFile=fopen(inputName,"r");
            if(inFile==NULL)
            {
                    printf("Input file does not exist, program terminating.");
                    exit(1);
            }
    //end input file//
    
    //begin output file//
            printf("\n\n\nEnter the name of file to hold the results[max 20 characters]: ");
            scanf("%s",&outputName);
            if((outFile=fopen(outputName,"r"))!=NULL)
            {
                    printf("\n\n %s exists, do you want to overwrite existing file?(y or n):  ",outputName);
                    scanf("%*c%c",&ans);//input resp, skips 1 character in buffer(<cr>)
                    if((ans=='n')||(ans=='N'))
                    {
                            printf("\nProgram aborted to prevent overwrite!");
                            exit(1);
                    }
            }
    
    
            outFile=fopen(outputName,"w");//opens/overwrites file if answer was not 'n'||'N'
    
    
            if(outFile==NULL)
            {
                    printf("\nCould not create file, program aborted!");
                    exit(1);
    
           }
    //end output file//
    
    
    
    //begin header page//
    
            fprintf(outFile,"%27s","AMCE Inc.");
            fprintf(outFile,"\n%19s", "We are the best, you use the best!");
    
    //end header page//
    
    //Begin Total definitions
    
            pgKt=1;
            lnKt=0;
            mxLn=20;
            Pgross=0;
            Pfica=0;
            Pnet=0;
            Rgross=0;
            Rfica=0;
            Rnet=0;
    
    //End Total definitions
    
    //Begin Read Data
            int a=0;//counter for read data loop
            while((fscanf(inFile,"%i",&empNum[a]))!=EOF)
            {
                    fscanf(inFile,"%c%c%c%f%f%f%f",&firstName[a],&lastName[a],
                            &dep[a],&YTD[a],&pyRt[a],&hrs[a]);
                    a++;
            }
    //End Read Data
    
    //begin calculate Payroll
    
    
            int b=a;
            a=0;
            while(a<=b)
            {
                    if( lnKt=mxLn)
                    {
                            newPage(pgKt,lnKt,Pgross,Pfica,Pnet,Rgross,Rfica,Rnet,outFile);
                    }//new page
                    calGross(a, pyRt,hrs, gross);
                    calFica(a,ficaTax,gross,YTD);
                    fprintf(outFile,"%2i%-10s%-10s%10.2f%10.2f%10.2f%10.2f\n",empNum[a],
                            firstName[a],lastName[a],YTD[a],gross[a],ficaTax[a],net[a]);//end print ln
                    lnKt++;
                    Pgross=Pgross+gross[a];
                    Pfica=Pfica+ficaTax[a];
                    Pnet=Pnet+net[a];
                    a++;
            }
    //end calculate Payroll
    
           }
    //end output file//
    
    
    
    //begin header page//
    
            fprintf(outFile,"%27s","AMCE Inc.");
            fprintf(outFile,"\n%19s", "We are the best, you use the best!");
    
    //end header page//
    
    //Begin Total definitions
    
            pgKt=1;
            lnKt=0;
            mxLn=20;
            Pgross=0;
            Pfica=0;
            Pnet=0;
            Rgross=0;
            Rfica=0;
            Rnet=0;
    
    //End Total definitions
    
    //Begin Read Data
            int a=0;//counter for read data loop
            while((fscanf(inFile,"%i",&empNum[a]))!=EOF)
            {
                    fscanf(inFile,"%c%c%c%f%f%f%f",&firstName[a],&lastName[a],
                            &dep[a],&YTD[a],&pyRt[a],&hrs[a]);
                    a++;
            }
    //End Read Data
    
    //begin calculate Payroll
    
    
            int b=a;
            a=0;
            while(a<=b)
            {
                    if( lnKt=mxLn)
                    {
                            newPage(pgKt,lnKt,Pgross,Pfica,Pnet,Rgross,Rfica,Rnet,outFile);
                    }//new page
                    calGross(a, pyRt,hrs, gross);
                    calFica(a,ficaTax,gross,YTD);
                    fprintf(outFile,"%2i%-10s%-10s%10.2f%10.2f%10.2f%10.2f\n",empNum[a],
                            firstName[a],lastName[a],YTD[a],gross[a],ficaTax[a],net[a]);//end print ln
                    lnKt++;
                    Pgross=Pgross+gross[a];
                    Pfica=Pfica+ficaTax[a];
                    Pnet=Pnet+net[a];
                    a++;
            }
    //end calculate Payroll
    
    //begin closing
    
            pgKt++;
            fprintf(outFile,"\n%24s","Report Summary");
            fprintf(outFile,"\n\n%s%i","Records Processed: ",b);
            fprintf(outFile,"\n%s%f","\nTotal Gross: $",Rgross);
            fprintf(outFile,"\n%s%f","\nTotal Net  : $",Rnet);
            fprintf(outFile,"\n%s%f","\nTotal FICA : $",Rfica);
            fprintf(outFile,"%s%i","Page ",pgKt);
            fclose(inFile);
            fclose(outFile);
    //end closing
    return 0;
    }
    When I added #include <stdio.h> to newPage.c a whole boatload of fun popped up.

    Code:
    make
    gcc -c -o newPage.o newPage.c
    gcc -o Lab Lab2.o calGross.o calFica.o newPage.o
    calGross.o: In function `calGross':
    calGross.c:(.text+0x0): multiple definition of `calGross'
    Lab2.o:Lab2.c:(.text+0x0): first defined here
    calFica.o: In function `calFica':
    calFica.c:(.text+0x0): multiple definition of `calFica'
    Lab2.o:Lab2.c:(.text+0xbb): first defined here
    newPage.o: In function `newPage':
    newPage.c:(.text+0x0): multiple definition of `newPage'
    Lab2.o:Lab2.c:(.text+0x1b9): first defined here
    collect2: ld returned 1 exit status
    make: *** [Lab] Error 1
    Any ideas?

  12. #12
    uint64_t...think positive xuftugulus's Avatar
    Join Date
    Feb 2008
    Location
    Pacem
    Posts
    355
    It looks like you are missing include guards in your own include files.

    The "errors" posted are actually duplicate definitions, and your file seem to be compiling correctly.
    If your own include files don't have guards against multiple inclusions, the compiler will happily create many versions of the same function inside every different *.o file using that function during the "make" execution.
    That makes the linker fail.
    Last edited by xuftugulus; 03-06-2008 at 02:46 PM.
    Code:
    ...
        goto johny_walker_red_label;
    johny_walker_blue_label: exit(-149$);
    johny_walker_red_label : exit( -22$);
    A typical example of ...cheap programming practices.

  13. #13
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    Remember that just because you get more errors when doing something doesn't mean it's wrong. The compiler doesn't complain about all errors all the time until you fixed something else.
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  14. #14
    Registered User slingerland3g's Avatar
    Join Date
    Jan 2008
    Location
    Seattle
    Posts
    603
    Quote Originally Posted by xuftugulus View Post
    It looks like you are missing include guards in your own include files.
    Nice link. Also mentiones the use of a #pragma directive, instead of using #include guards

    #pragma once

  15. #15
    Code Goddess Prelude's Avatar
    Join Date
    Sep 2001
    Posts
    9,897
    >#pragma once
    Which should be avoided because it doesn't warrant losing portability, and pragma once has a history of being buggy.
    My best code is written with the delete key.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Adventures in labyrinth generation.
    By guesst in forum Game Programming
    Replies: 8
    Last Post: 10-12-2008, 01:30 PM
  2. Dikumud
    By maxorator in forum C++ Programming
    Replies: 1
    Last Post: 10-01-2005, 06:39 AM
  3. At My Wit's End (concerns passing char to constructor)
    By MisterWonderful in forum C++ Programming
    Replies: 1
    Last Post: 03-26-2004, 03:13 AM
  4. socket newbie, losing a few chars from server to client
    By registering in forum Linux Programming
    Replies: 2
    Last Post: 06-07-2003, 11:48 AM
  5. Next Question...
    By Azmeos in forum C++ Programming
    Replies: 3
    Last Post: 06-06-2003, 02:40 PM