Let me start by thanking all of those who had helped me with "When null when not..." , that was absolutely wonderful, solved all issues.
I am sorry I wasn't able to post any thanking thread; I had an internet breakdown, so that kept me away from the web for a while.
So again, to all who were involved, thanks, and thanks again.
Now for the problem itself:
int Menu(){
	int i;
    char *In = (char *)malloc(256);

	cout<< "Option 1:" << "\n";
	cout<< "Option 2:" << "\n";
	cout<< "Option 3:" << "\n";
	cout<< "ATTENTION: Please type the number of the selection only!" << "\n";
	scanf("%s", In);
	i = atoi(In);
	if(i == 0){
	return i;
The problem is that when a string is typed, but afterwards A VALID int is inserted, it disregards that int, and once again performs the recursion ("Menu();").
So basically, what I am saying is, that whenever a string is typed, it is all good, it repeats the function, and all's well.
But after that string, if you'll try to type an integer, it will ignore that fact (that the new input is an Integer), and will repeat the function again, and that's not good...
Very sorry for my rudeness again,
Thanks for the patience and generosity, (hopefully also forgiveness),