C (sous Linux) -> Out of memory - Programmation
Marsh Posté le 11-05-2001 à 09:33:23
Je croyais que c t pas une combinaison de touche mais une sorte de constante reservée pour les fin de flux ...
Marsh Posté le 11-05-2001 à 09:43:17
Merci pour vos réponses les gars
j'avais po l'air fin en faisant ctrl-C
"ben ... Bouhhhhhh, ça marche po"
Marsh Posté le 11-05-2001 à 10:06:32
maliaure>
Le EOF qui est dans la table ASCII n'est PAS le caractere qui est envoye pour coder la fin de fichier, sinon reflechis, comment ferais-tu pour coder ce caractere dans un fichier si a quand tu essaies de le lire il provoque la fin de la lecture .
EOF, n'est donc pas un caractere particulier, c'est juste un cas d'erreur de la fonction systeme lorsque celui-ci arrive explicitement a la fin du flux. Pour la fonction systeme read, elle renvoie un nombre d'octets lus de 0.
C'etait juste une remarque sans lien avec la question posee par Aricoh .
Bye
LEGREG
Marsh Posté le 11-05-2001 à 10:14:33
> Aricoh
Donc en gros, c'est pas EOF qu'il faut tester.
Il faut que tu te réserve un caractère que ton prog interprètera comme fin du traitement. ESC par exemple ! (ASCII 27 ou 0x1B)
Marsh Posté le 11-05-2001 à 09:08:46
Oui, enfin, celui qui est Out of memory, c'est pas le système, c'est moi
Je ne me souviens pas de la combinaison de touches pour provoquer le EOF.
J'ai testé un truc tout bête :
char c = 'a';
int compteur = 0;
while ((c = getchar()) != EOF)
{
if (c == ' ')
++compteur;
}
printf ("Il y a %2d espaces", compteur);
oui oui, mais ... Comment provoquer ce EOF ?
J'ai essayé avec Ctrl+C, je sors du prog' et c'est tout, le printf ne s'exécute pas.
Quelle est cette fichue combinaison ?
---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL