Question extension fichier + pb float [Résolu]

Signaler
Messages postés
83
Date d'inscription
mardi 24 février 2004
Statut
Membre
Dernière intervention
10 mars 2006
-
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
-
Bonjour,

Tout d'abord, j'ai une question sur les fichiers, je sais que l'extension fait partie du nom, mais serait-il possible d'ouvrir un fichier dont on connait l'emplacement et le nom mais pas l'extension.

Ensuite je viens de m'apercevoir d'un problème concernant les float. Voici le petit bout de programme suivant :

float i=0;

while (1)
printf ("\r%f",i++)

Je sais qui'l y a un while(1) et que ce n'est pas bien mais cest juste pour tester la chose.
Donc normalement, on devrait voir afficher sur la console la valeur de i qui s'incrémente de 1 à chaque fois sans s'arrêter.
Sauf que ce petit arrete de s'incrémenter quand il atteint 16777216. Et je ne comprends pas pourquoi.

Remarque : 16777216 = 16 * 1024* 1024 y a t-il un lien ?

Merci d'avance

7 réponses

Messages postés
458
Date d'inscription
jeudi 4 décembre 2003
Statut
Membre
Dernière intervention
19 décembre 2008
10
Sous windows ton prog?
Si oui, regarde dans mes sources. Il y en a une sur les fichiers.
Dedans, il y a une fonction qui liste tous les fichiers portant une extension donnée, en la modifiant un peu, tu peux lister tous les fichiers commencant d'une certaines facon.
Ainsi tu récupéreras ton fichier avec son extension.

Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
12
Bon pour le fichier, je ne crois pas qu'il y ai de solution pour l'ouvrir sans l'extension. Pour le float trace ton programme avec le debuggeur et regarde ce qui cloche.
Messages postés
14745
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
7 juillet 2020
92
Que les pro me confirme, mais l'opérateur "++" ne fonctionne qu'avec des entiers, et non pas des float

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
Messages postés
83
Date d'inscription
mardi 24 février 2004
Statut
Membre
Dernière intervention
10 mars 2006

Merci julienbj.

Pour le problème avec le float, buno le problème persiste si tu mets i = i + 1;


et si tu initialises i avec une valeur supérieure à 16777216, il ne s'incrémente pas du tout.

Je vois vraiment pas pourquoi ça fait ça.
Rq : il n'y a pas ce problème avec les doubles du moins pas a cette valeur.
Messages postés
83
Date d'inscription
mardi 24 février 2004
Statut
Membre
Dernière intervention
10 mars 2006

Je viens de faire le test avec un double. ça fait la même chose, il reste bloqué à 9007199254740992 soit 2^53.


étrange, étrange ...
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
12
Message pour Buno. Non l'opérateur ++ peut fonctionner avec des float mais il va les incrémenter de 1.0 pas de 0.1. Pour ça je crois que l'on peut faire += 0.1

___________________________________________
Les plus grands esprits trouvent toujours une solution
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
12
Pour Jeromedu94, en effet c'est étrange. Ton double a peut-être attein sa valeur maximal ou il n'a plus asser de mémoire. Quoi qu'il en soit moi n'on plus je comprend pas trop.

___________________________________________
Les plus grands esprits trouvent toujours une solution