This is old, but just in case anyone else is looking at this... There are numerous bugs in the posted code.
1) Buffer Overflow risk (high):
strcpy(rstr, buff );
Because buff is bigger than rstr
2) An endless for(;;) loop. Use while(!feof(stdin) && !feof(comport)) so that you can break out and hit the fclose when one of the streams is at EOF.
3) When the COM port is busy you don't need to enter "quit" to exit, getch() just waits for a keypress.
4) Put a return 0 after the getch() so that you don't need an else block.
5) As has been pointed out, check the return values from fgets. If nullptr you need to drop out of the loop (continue will do it if you follow #2.)
6) I highly suggest using std::array<char,> instead of char [] buffers. Along with strcpy_s or sprintf_s, using the .size() member of the array, you will be at less risk of overflows.
And, not to pile on, but that is a weird coding style. ;)