l1vr3ur3
Messages postés2Date d'inscriptionsamedi 2 décembre 2006StatutMembreDernière intervention21 février 2007
-
21 févr. 2007 à 17:00
cs_azamharir
Messages postés55Date d'inscriptionjeudi 18 janvier 2007StatutMembreDernière intervention 1 novembre 2008
-
21 févr. 2007 à 18:53
Bonjour all,
Voici un code source, je voudrai arreter de recuperer les données que l'utilisateur tappe, une fois qu'il fasse appuie sur la touche "Entrer", et non plus lui demander a chaque saisie de tapper O ou N pour quitter la boucle for.
j'ai pas envie de déclarer trop de variables..., mais bon, je sais pas trop comment il va pouvoir s'arreter si on tappe une touche "enter".
je sais pas si en analysant le "\n" qui sera affecté au scanf("%d",&x), parce que x est declaré en tant qu'entier, donc un "\n" affecté a un entier, ça a l'air louche.
je me remet a vous
voici la source:
#include <stdio.h>
void main()
{ FILE *pf
int i,x; char c='O';
pf=fopen("entier.dat",wb);
if (pf==NULL) puts ("erreur d'ouverture");
else { while (c=='O' || c=='o')
{puts ("donner la valeur");
scanf("%d",&x);
fwrite(&x,sizeof(x),1,pf);
puts("autre valeur ? O/N");
scanf("%c",&c);
} fclose(pf);
}
}
merci merci
tab contiendra toute les valeurs décimales entrée. Cependant, si une lettre est entrée à la saisie, elle sera donc soustraite par '0' et ajouté au tableau.
Pour palier à ce problème, tu peux ajouter un teste dans la boucle pour n'avoir que des valeurs décimales:
while((key = getchar()) != '\n' && i < 256)
if(key >= '0' && key <= '9') tab[i++] = key-'0';
Tu écris ensuite (et non dans la boucle), grâce à tab, toute tes valeurs dans un fichier.
cs_azamharir
Messages postés55Date d'inscriptionjeudi 18 janvier 2007StatutMembreDernière intervention 1 novembre 2008 21 févr. 2007 à 18:53
salut tu peus faire ça
while (scanf("%d",&x)==1)
fwrite(&x,sizeof(int),1,pf);
tant que tu entre des entiers ==> tu les écris ds le fichier .
pour sortir de la boucle tu tape qlqchose à part les entiers ( caracteres non numériques)