User Name Password Register
DaniWeb IT Discussion Community
All
What is DaniWeb IT Discussion Community?
You're currently browsing the C++ section within the Software Development category of DaniWeb, a massive community of 456,272 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 3,421 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our C++ advertiser: Programming Forums
Views: 6876 | Replies: 4
Reply
Join Date: Oct 2003
Location: Tampa, FL
Posts: 6
Reputation: phickman7872 is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
phickman7872's Avatar
phickman7872 phickman7872 is offline Offline
Newbie Poster

C command-line I/O question

  #1  
Oct 4th, 2003
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.
Nothing is impossible, given time and money.
AddThis Social Bookmark Button
Reply With Quote  
Join Date: Sep 2003
Posts: 22
Reputation: Mike29936 is an unknown quantity at this point 
Rep Power: 6
Solved Threads: 0
Mike29936 Mike29936 is offline Offline
Newbie Poster

Re: C command-line I/O question

  #2  
Oct 7th, 2003
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++;
}
Reply With Quote  
Join Date: Aug 2003
Location: Austin, TX
Posts: 117
Reputation: subtronic is an unknown quantity at this point 
Rep Power: 6
Solved Threads: 1
subtronic's Avatar
subtronic subtronic is offline Offline
Junior Poster

Re: C command-line I/O question

  #3  
Oct 8th, 2003
You need to flush the:
printf("What street do you live on? ");
to stdout.
Reply With Quote  
Join Date: Oct 2003
Location: Tampa, FL
Posts: 6
Reputation: phickman7872 is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
phickman7872's Avatar
phickman7872 phickman7872 is offline Offline
Newbie Poster

Re: C command-line I/O question

  #4  
Oct 12th, 2003
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.
Nothing is impossible, given time and money.
Reply With Quote  
Join Date: Jul 2008
Posts: 3
Reputation: yap.nice is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
yap.nice yap.nice is offline Offline
Newbie Poster

Re: C command-line I/O question

  #5  
Aug 4th, 2008
Originally Posted by phickman7872 View Post
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
Reply With Quote  
Reply

Only community members can participate in forum threads. You must register or log in to contribute.

DaniWeb C++ Marketplace
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)

 

Thread Tools Display Modes

Similar Threads
Other Threads in the C++ Forum

All times are GMT -4. The time now is 6:26 pm.
Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC