Hi all,

I am new to C on linux and have a question about I/O. I am trying to read input from the command-line:

printf("What is your first name? ");
scanf("%s", firstName);
printf("What is your last name? ");
scanf("%s", lastName);
printf("What is your age? ");
scanf("%d", &age);
printf("What street do you live on? ");
streetAddress = fgets(buffer, 255, stdin);

However, when I run this code after entering the "age", the code totally skips the "Enter Address" and continues with next line of code. I think there was a command in C++ to flush the input buffer. Does this command exist in C? And is this the best way to read a line of input?

Thanks in advance.

Does this command exist in C?

I believe it's fflush(). I could be wrong, though.

And is this the best way to read a line of input?

If all else fails, I do something similar to this:

while ((input = getche()) != '\n' && length <= max_length) {
buffer[length] = input;
length++;
}

My thanks go to both of you for your responses.

I have just installed RedHat 9 on my home PC and am currently transitioning from GW-BASIC/QBASIC/Visual Basic to C/C++ using Qt.

That was always something that puzzled me by C, I guess it seems complex simply because of my background in other languages.

Thanks agin.

Hi all,

I am new to C on linux and have a question about I/O. I am trying to read input from the command-line:

printf("What is your first name? ");
scanf("%s", firstName);
printf("What is your last name? ");
scanf("%s", lastName);
printf("What is your age? ");
scanf("%d", &age);
printf("What street do you live on? ");
streetAddress = fgets(buffer, 255, stdin);

However, when I run this code after entering the "age", the code totally skips the "Enter Address" and continues with next line of code. I think there was a command in C++ to flush the input buffer. Does this command exist in C? And is this the best way to read a line of input?

Thanks in advance.

i dont know

Comments
5 years, and all you could say is "I don't know".
This article has been dead for over six months. Start a new discussion instead.