> printf("A = "); int a = (int)(fgets(buff, 64, stdin));
> printf("\nB = "); int b = (int)(fgets(buff, 64, stdin));
I can't imagine how you thought this could possibly work.
> this->A << a; this->B << b;
Are these expecting an int (as maybe suggested by your hackery casting), or a string?
If you're expecting a string, note that you only have ONE char array, so whatever you typed in last will be what you'll get for both a and b.