| | |
incorrect output in Linux environment
Please support our C++ advertiser: Intel Parallel Studio Home
![]() |
•
•
Join Date: Aug 2004
Posts: 3
Reputation:
Solved Threads: 0
below is one of my function call of a program done in C:
/* asks if the players would like to have another game of Tic Tac Toe */
void prompt_user(int game[][SIZE])
{
char reply;
printf("\nPlay Again? (Y/N): ");
scanf("%c", &reply);
if(reply == 'Y' || reply == 'y')
{
print_empty_board();
initialise_board(game);
}
else if(reply == 'N' || reply == 'n')
{
printf("Hope You Have Enjoyed The Game!\n\n");
exit(0); /* quits the game */
}
}
when using microsoft visual C++ and devC++ to compile and execute, there were no errors in the output when playing the tic-tac-toe game.
however, when i used my school's lab (which is using Linux and xemacs only) pc to compile and execute, the output did not allow me to enter Y or N as an answer to 'Play Again?'. The execution exits immediately. anyone knows the reason and how to solve my problem??
/* asks if the players would like to have another game of Tic Tac Toe */
void prompt_user(int game[][SIZE])
{
char reply;
printf("\nPlay Again? (Y/N): ");
scanf("%c", &reply);
if(reply == 'Y' || reply == 'y')
{
print_empty_board();
initialise_board(game);
}
else if(reply == 'N' || reply == 'n')
{
printf("Hope You Have Enjoyed The Game!\n\n");
exit(0); /* quits the game */
}
}
when using microsoft visual C++ and devC++ to compile and execute, there were no errors in the output when playing the tic-tac-toe game.
however, when i used my school's lab (which is using Linux and xemacs only) pc to compile and execute, the output did not allow me to enter Y or N as an answer to 'Play Again?'. The execution exits immediately. anyone knows the reason and how to solve my problem??
•
•
Join Date: Mar 2004
Posts: 1,620
Reputation:
Solved Threads: 51
Hello,
I think your bug has to do with the reply definition. You are making two dangerous assumptions with your code... 1) is that char reply; properly initializes the variable (instead of you making an explicit definition, such as reply='s'; so that you know what that variable holds. 2) Your code makes no provision if someone enters in something else, such as the letter 'T' If I were to enter in 'T', neither of your if statements will work, as they fail the tests, and the function will exit without the exit code.
My GUESS is that you might have an extra character coming through the function, and the computer is seeing that as valid input. Granted, the code does not bring in any data except for the one integer, but what is in the character buffer?
Christian
I think your bug has to do with the reply definition. You are making two dangerous assumptions with your code... 1) is that char reply; properly initializes the variable (instead of you making an explicit definition, such as reply='s'; so that you know what that variable holds. 2) Your code makes no provision if someone enters in something else, such as the letter 'T' If I were to enter in 'T', neither of your if statements will work, as they fail the tests, and the function will exit without the exit code.
My GUESS is that you might have an extra character coming through the function, and the computer is seeing that as valid input. Granted, the code does not bring in any data except for the one integer, but what is in the character buffer?
Christian
![]() |
Similar Threads
- News Story: Linux: Lean on Me (Linux Servers and Apache)
- News Story: 10 Reasons To Choose Linux in a Bad Economy (Linux Servers and Apache)
- News Story: Seven Reasons Why Linux Will Succeed in 2009 (Linux Servers and Apache)
- News Story: Microsoft spreads Linux patents FUD (Linux Servers and Apache)
- News Story: Gentoo's Graphical Installer is Unnecessary (Linux Servers and Apache)
- News Story: IBM reveals new virtual Linux environment (Linux Servers and Apache)
- Can anyone suggest some simple miniproject in C in Linux Environment (Shell Scripting)
- help with linux on laptop (*nix Software)
Other Threads in the C++ Forum
- Previous Thread: Linked List using pointers (C++ ADT)
- Next Thread: merged:nesting loops
| Thread Tools | Search this Thread |
api array based beginner binary bitmap c++ c/c++ calculator char char* class code coding compile compiler console conversion count database delete deploy desktop developer dll download dynamic dynamiccharacterarray email encryption error file forms fstream function functions game givemetehcodez google graph gui homeworkhelp homeworkhelper iamthwee ifstream input int integer java lib linkedlist linker list loop looping loops map math memory multiple news node number numbertoword output parameter pointer problem program programming project python random read recursion recursive reference rpg sorting string strings struct temperature template test text text-file tree unix url variable vector video visualstudio win32 windows winsock word wordfrequency wxwidgets






