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;
}