Question: I have read many things about STL containers (`Sequence Containers`, `Associative Container`, `Container adapters`) but I'm still don't understand the internal form for each of them. 

I want visualization form supported with pictures to every container in STL, (ex: what is the form of data inside the container) if is possible.

I hope that my question be clear.

Answer: 
Most 'terminals' do not send keyboard input to the program 'one key at at time'. Rather, the terminal will wait for the enter key, and then send all keys pressed (up to that point) to the target program. Hence, the question code suffers from getting newlines `\n` as input, as well as digits.

The code below throws away all non-digit values (but also allows for the EOF value):

```
#include <stdio.h>
#include <ctype.h>

int main(void)
   {
   int c;

   do {
      c=0;
      /* Get user input */
      printf("Please enter a digit: ");
      while(!isdigit(c) && EOF != c)
         c = getchar();

      /* Produce output. */
      if(c == EOF)
         printf("\n");
      else
         printf("The digit entered was: %c\n", c);
      } while (c != EOF);

   return 0;
   }

```

Compile the above (Linux GCC example: `gcc -Wall -o test *.c`)

Then execute: (Linux example: `./test`)

```
Please enter a digit: 5
The digit entered was: 5
Please enter a digit: 6
The digit entered was: 6
Please enter a digit: <CTRL-D> 

```

`<CTRL-D>` usually generates an EOF condition.
Because the ENTER value "\n" (ASCII value 10) will be get by 

```
getchar(c); 

```

so it will do second time of 

```
printf("The digit entered was: ");
printf("Please enter a digit: "); 

```