When you use the >> operator, it leaves the newline (\n) character in the input stream. If you use the >> operator again after this, it knows to ignore the \n character and get the intended input. However, if you use getline or get after >>, it does not know to ignore the \n character and will simply take that character and be done, never asking the user for input.
You can fix this in two easy ways. First, you could just use getline for everything and never use infile, or you can use infile.ignore() after infile >> and before getline (at least I'm pretty sure this works for files; I haven't done this in a while). What ignore() does is it just takes the first character in the stream and removes it, thus solving the problem described above.
Thanks for the reply. I tried the infile.ignore(); between the infile >> and getline and get the same thing, no chnages. I can't input int or double using getline, right? I get bugs when I use getline to obtain integers from the input file.