Why are you using digital_oi_18? Why dont you just use rc_dig_in18? I am not sure if this is the same thing but it might be your problem.
if (rc_dig_in18==1)
{
printf("");
}
Also, when you say your rc hardware light is yellow, your not shorting out the digital input are you? Make sure you are connecting the ground and signal pins, not the ground and +5.
All the digital pins are INPUT/OUTPUT pins. digital_io_18 is used to set whether the pin is used for input or for output. If it is used for input, then rc_dig_in18 is used to read the value.