Não sei se é uma má prática, mais eu creio que seria melhor tudo em seu lugar, cout no C++ e printf no C, embora vc possa usar o extern para dizer ao compilador que vc quer usar uma função de outra lang ..

#include <cstdio>

extern "C" {
    int printf(const char* format, ...);
}

int main() {
    printf("Hello, world!\n");
    return 0;
}