printf("Copied %n file%s\n", n_files, n_files > 1 ? "s" : "");
There are languages with more than two grammatical numbers. There are languages that use different word order with different numbers. You need to redesign your simple and easy printf statement to accommodate them, and the outcome is bound to be anything but simple and easy.