471,595 Members | 1,913 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 471,595 software developers and data experts.

Getting User Input after getting Input from a file

Hey, I am having a problem with a program I am working on. Basically,
the first part of the program gets input from a file using cin.getline.
Then the second part, (still in the same main as the first part) needs
to get input from the user, and I want to do this with cin.getline
also. The problem I am getting, is when I run the program, the text if
read in from the file correctly, but it seems to just skip over the
cin.getline when I want to get input from the user. I think this is
having something to do with the cin.getline still trying to read the
file, and getting the EOF and returning null, instead of pausing for
the user input. I want it to stop trying to get input from the file,
and get input from the user on the command line. Any help on how to fix
this? Thanks in advance.
My program: (in pseudocode)

int main ()
{
//getting text from file
while ( cin.getline ( text [], size, '\n' ) )
{
//processing text from file

}

//getting input from user
bool b = false; //if 1 is entered by user, b is set to true and
program ends

while ( !b )
{
cin.getline ( userinput [], usize, '\n' );
//check to see if user entered 1
if (user didnt enter 1)
{
process user input
}

else
b = true;

}

return 0;
}//end main

Mar 22 '06 #1
3 3495
Is there a way to redirect cin from stdio to file io in application?

Mar 22 '06 #2
In article <11*********************@j33g2000cwa.googlegroups. com>,
de******@uga.edu wrote:
Hey, I am having a problem with a program I am working on. Basically,
the first part of the program gets input from a file using cin.getline.
Then the second part, (still in the same main as the first part) needs
to get input from the user, and I want to do this with cin.getline
also. The problem I am getting, is when I run the program, the text if
read in from the file correctly, but it seems to just skip over the
cin.getline when I want to get input from the user. I think this is
having something to do with the cin.getline still trying to read the
file, and getting the EOF and returning null, instead of pausing for
the user input. I want it to stop trying to get input from the file,
and get input from the user on the command line. Any help on how to fix
this? Thanks in advance.
My program: (in pseudocode)

int main ()
{
//getting text from file
while ( cin.getline ( text [], size, '\n' ) )
{
//processing text from file

}

//getting input from user
bool b = false; //if 1 is entered by user, b is set to true and
program ends

while ( !b )
{
cin.getline ( userinput [], usize, '\n' );
//check to see if user entered 1
if (user didnt enter 1)
{
process user input
}

else
b = true;

}

return 0;
}//end main


Try posting the real code instead of pseudocode.
--
Magic depends on tradition and belief. It does not welcome observation,
nor does it profit by experiment. On the other hand, science is based
on experience; it is open to correction by observation and experiment.
Mar 23 '06 #3
I already figured it out. I will just use ifstreams to get the file
input and regular cin to get the input from the command line. I found
out there is no way to redirect a stream from a file back to the
command line in C++. Thanks everyone though.

Mar 23 '06 #4

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

4 posts views Thread by Don W. | last post: by
2 posts views Thread by karinmorena | last post: by
reply views Thread by XIAOLAOHU | last post: by
reply views Thread by Anwar ali | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.