So I've got an assignment for class. The point is to read in characters to a string. If there are 7, print the 7. If there are 10, print the 10. Less than or more than, print an error.

It is also supposed to convert keyboard characters into their associated number on a dialpad.

Doesn't work though and everytime I load netbeans it gives something different..

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>



int main(int argc, char** argv) {

    char buffer [10];
    int count=0, badline=0, nextchar;



    while(count < 10) {

        nextchar = getchar();

        if (isspace(nextchar) && nextchar !='\n') ;

        /*else if (badline==1 || count>10){
                badline=1;
            }*/

        else if (isalnum(nextchar)) {

            /*if (badline==1 || count>10) {
                badline=1;
                /*break;*/


            if (count <= 10 || count >= 7)
                buffer[count] = nextchar;
                ++count;
                /*break;*/
                continue;
            }


        else if (isalpha(nextchar)) {
            nextchar = tolower(nextchar);

            /*if (badline==1 || count>10) {
                badline=1;
               /*break;*/

            switch(nextchar)
            {
                case 'a': case 'b': case 'c':
                    nextchar = 2;
                    break;
                case 'd': case 'e': case 'f':
                    nextchar = 3;
                    break;
                case 'g': case 'h': case 'i':
                    nextchar = 4;
                    break;
                case 'j': case 'k': case 'l':
                    nextchar = 5;
                    break;
                case 'm': case 'n': case 'o':
                    nextchar = 6;
                    break;
                case 'p': case 'q': case 'r': case 's':
                    nextchar = 7;
                    break;
                case 't': case 'u': case'v':
                    nextchar = 8;
                    break;
                case 'w': case 'x': case 'y': case 'z':
                    nextchar = 9;
                    break;
                    }


                     buffer[count]=nextchar;
                            ++count;
                            /*break;*/
                            continue;
                    }


        else if (nextchar == '\n' || nextchar == EOF) {
            if (badline==1 || count>10)
                printf("Please enter acceptable input\n");
            else
                printf("Good line\n");
                printf("%s\n", buffer);
                badline = 0 ;
                memset(buffer, 0, 10);
            if (nextchar == EOF)
                /*return(EXIT_SUCCESS);*/
                badline = 0 ;
                count = 0 ;
                /*buffer[0] = '\0';*/
                memset(buffer, 0, 10);

        }

        else
            badline = 1 ;


    }

    printf("Please limit to 10\n");
    return nextchar;








    /*return (EXIT_SUCCESS);*/

}

Fixed :P

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.