how can i cin.ignore() only a selected variable?

how can i stop a loop if

continue == 'n' || coninue == 'N'

i need to keep my
continue character
but cin.ignore my
Number integer
.


Last edited on
while (Continue != 'n' && Continue != 'N');
You can stop the loop by using any other character other n or N as input
here is my code.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>

using namespace std;
const int Size = 20;
int main()
{
    
	int T[20];
	int A[20];
	char Continue;
	int i = 0, Digit, k;
	do
	{
        for (i = 0; i < Size; i++)
    {
		A[i]=0;
		T[i]=0;
    }
        
		i = 0;
		cout << "\n\nPlease enter first number --> ";
		Digit = cin.get ();
        
        
		while (Digit != '\n' && i < Size)
		{
			T[i] = Digit - '0';
			++i;
			Digit = cin.get();
		}
		for ( k = Size - 1, --i; i >= 0 ; --i, --k)
		{
			A[k] = T[i];
		}
		cout << endl;
		for (i = 0; i < Size; i++)
		{
            cout << A[i];
		}

                              cin.ignore();
		cout << "\n\nContinue? Y or N    ";
		cin >> Continue;
		
	}
    while ( Continue != 'n' || Continue != 'N');
}


my
cin.ignore()
however, deletes even my Continue character and will continuously loop even when i put in 'N'
Last edited on
The ignore should occur after line 43.

The condition on line 46 is not correct. It can never be false.


When Continue is 'n' the condition looks like this:

1
2
while ( 'n' != 'n' || 'n' != 'N' ) // which simplifies to:
while (    false   ||    true    )  // which, according to truth tables for logical or, is true 


I'm sure you could do the same substitution for 'N'.
Last edited on
Topic archived. No new replies allowed.