pourquoi ne “printf” pas de travail?
Je suis en train d'apprendre la programmation en C
. Pourriez-vous expliquer pourquoi rien n'est imprimé ici? Merci à l'avance.
#include <stdio.h>
int main (void)
{
char a[]="abcde";
printf ("%s", a);
}
- Ajouter un "\n" à la chaîne ou le format. -->>
printf ("%s\n", a);
- pourquoi ne serait-il pas imprimer?
- Ou
fflush(stdout);
aprèsprintf
- quelle plateforme utilisez-vous pour compiler?? J'ai l'exécuter sur
codeblocks
etideone
. il fonctionnait bien. - Vous avez besoin de retourner un int à partir de votre fonction
- c'est optionnel
- désolé, j'ai compris ce qui est mal. J'ai 2 fichiers différents avec le même nom, ils sont dans des répertoires différents. J'utilise Linux et le compilateur clang.
- Puisque vous n'avez pas la fin de la sortie avec un saut de ligne, vous ne pouvez pas voir clairement, parce que c'est mélangé avec une invite de commande dos.
Vous devez vous connecter pour publier un commentaire.
Sur de nombreux systèmes
printf
est mis en mémoire tampon, c'est à dire lorsque vous appelezprintf
la sortie est placé dans un tampon au lieu d'être imprimées immédiatement. Le tampon sera vidé (aka la sortie imprimée) lors de l'impression d'un retour à la ligne\n
.Sur tous les systèmes de votre programme d'impression malgré l'absence des
\n
que le tampon est vidé lors de la fin de votre programme.En général, vous toujours ajouter le
\n
comme:Une alternative pour obtenir la sortie est immédiatement appeler
fflush
de vider la mémoire tampon. À partir de la page de man:Source: http://man7.org/linux/man-pages/man3/fflush.3.html
MODIFIER
Comme l'a souligné @Barmar et cité par @Alter Mann, il est nécessaire que le tampon est vidé lorsque le programme se termine.
Citation de @Alter Mann:
Voir l'appel de main() dans main() en c
exit()
nireturn
, cela pourrait être la cause du problème?return
est facultatif, très étrange!