the following "example.exe" C++ program:
int main(int argc, char *argv[])
{
    int number = 0;
    do {
        scanf("%d", &number);
        for(int x=1; x<=number; x++) {
                printf("%d n", x);
        }
    } while (number >= 1);
    
    return EXIT_SUCCESS;
}
Code:
import subprocess, os
PIPE = subprocess.PIPE
p = subprocess.Popen("example.exe", stdin=PIPE, stdout=PIPE)
p.stdin.write("10")
p.stdin.flush()
print p.stdout.read() #Deadlock
print "End of Execution"
os.system("PAUSE")