954,500 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

C command-line I/O question

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.

phickman7872
Newbie Poster
6 posts since Oct 2003
Reputation Points: 10
Solved Threads: 0
 
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++;
}
Mike29936
Newbie Poster
22 posts since Sep 2003
Reputation Points: 12
Solved Threads: 0
 

You need to flush the:
printf("What street do you live on? ");
to stdout.

subtronic
Junior Poster
117 posts since Aug 2003
Reputation Points: 44
Solved Threads: 1
 

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.

phickman7872
Newbie Poster
6 posts since Oct 2003
Reputation Points: 10
Solved Threads: 0
 

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

yap.nice
Newbie Poster
3 posts since Jul 2008
Reputation Points: 6
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You