|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : simplifier prog. [ Windows / Fichier & Disque ] (F0ra)
Informations & options pour cette discussion
|
samedi 19 janvier 2008 à 11:06:07 |
simplifier prog.

F0ra
|
Bonjour, Je cherche de l'aide pour simplifier mon programme au maximum Voici, le contenu du fichier txt :
0 1 2 5 3 4 . 1 2 5 1 1 5 2 2 6 . 9 2 3 2 5 9 8 8 9 . 0 1 4 . 2 5 2 3 8 6 . 2 2 1
J'ai besoin de con Et stoker les valeurs dans un tableau Map[][]
Voici ce que j'ai réalisé : Ça fonctionne sauf que le programme est long et ne calcul pas le nombre de chiffre en Largeur et en Hauteur.
bool read_number(FILE* fp, int* number) { char szWord[256]; int i = 0; int b; *number = 0.0; naître le nombre de chiffre en Largeur et en Hauteur. Et stoker les valeurs dans un tableau Map[][]
Voici ce que j'ai réalisé : Ça fonctionne sauf que le programme est long et ne calcul pas le nombre de chiffre en Largeur et en Hauteur.
bool read_number(FILE* fp, int* number) { char szWord[256]; int i = 0; int b; *number = 0.0; szWord[0] = '\0'; while ( ((b=fgetc(fp))!=EOF) && (i<255) ) { if( (b=='-') || (b=='.') || (b=='0') || (b=='1') || (b=='2') || (b=='3') || (b=='4') || (b=='5') || (b=='6') || (b=='7') || (b=='8') || (b=='9') ) { szWord[i++] = (char)b; } else if(i>0) break; } szWord[i] = '\0'; if(i==0) return false; *number = atof(szWord); return true; } ////////////////////// void Load_Objet(char* Files) { int dNumber; FILE* fp = NULL; char data[100]; sprintf(data,"map/%s",Files); fp = fopen(data,"r"); int tt=0; while( !feof(fp) ) { for(int i =0; i < NbrMot; i++) { read_number(fp,&dNumber); Map[i][tt] =dNumber; } tt++; } _Objet_Max=tt-1; }
Merci beaucoup @+
|
|
|
|
samedi 19 janvier 2008 à 11:18:16 |
Re : simplifier prog.

F0ra
|
Tien, ça bug dans le forum!!! Il y a du mélange dans l'air. J'ai besoin de connaître le nombre de chiffre en Largeur et en Hauteur dans un fichier txt. Et stoker les valeurs dans un tableau Map[][] 0 1 2 5 3 4 .... 1 2 5 1 1 5 2 2 6 .... 9 2 3 2 5 9 8 8 9 .... 0 1 4 .... 2 5 2 3 8 6 .... 2 2 1
|
|
|
|
samedi 19 janvier 2008 à 12:41:19 |
Re : simplifier prog.

mezaya
|
Salut
d'abord je suis étonné que ça compile erreur de cast :
*number = atof(szWord);
atof renvoie un double.
tu peut très dimplifier ton programme en passant par des ostreams :
void Load_Objet(char* Files)
{
char nomFichier[100];
strcpy_s( nomFichier, 100, "map/" );
strcat_s( nomFichier, 100, Files );
fstream fichier( nomFichier, ios::nocreate, filebuf::sh_read );
int index = 0;
while( !fichier.eof() )
{
int ligne = index % NbrMot;
int colonne = index / NbrMot;
fichier >> Map[ligne][colonne];
++index;
}
|
|
|
|
samedi 19 janvier 2008 à 13:50:25 |
Re : simplifier prog.

F0ra
|
Je n'avais pas tout écrit :
bool
read_number(FILE* fp, int* number);
int
NbrMot=63;
int
Map[500][500];
Bref..
J'ai un problème avec ton code,
strcpy_s, Nocreate, sh_read undeclared identifier
j'ai rajouter :
#include
<fstream.h>
Cannot open include file: 'fstream.h': No such file or directory
Que faire merci
@+
|
|
|
|
samedi 19 janvier 2008 à 13:59:24 |
Re : simplifier prog.

mezaya
|
il faut inclure et peut etre
#include // si nécessaire
#include
le bout code fichier >> Map[ligne][colonne]; lit directement un entier écrit en mode texte et affecte la valeur dans le tableau. l'operateur ">>" lis le code texte en elevant les espaces, tabulations, saut de ligne automatiquement. ça marche pour toute les types de base :
fstream fichier;
float reel;
fichier >> reel; // on lit dans le fichier un reel en mode texte
// accepte le texte les fottants suivant : 0.1235 12 12.5 .25
|
|
|
|
samedi 19 janvier 2008 à 14:31:05 |
Re : simplifier prog.

F0ra
|
re, mon ancien code fonctionne, regard :
[ Lien ]
ça fonctionne toujours pas. J'ai essayé de mélanger ta technique avec la mienne
char nomFichier[100]; FILE* fp = NULL; sprintf(nomFichier,"map/%s",Files); fp = fopen(nomFichier,"r");
int index = 0; while( fgetc(fp)!=EOF ) { int ligne = index % NbrMot; int colonne = index / NbrMot; MAP[ligne][colonne]>>fgetc(fp); index++; }
il n'y a pas de bug, mais, il y a pas les bonne valeurs dans MAP de plus elle sont identique. Dans mon code NbrMot correspondais à 63 pour la ligne et la colonne que mon programme ne calculait pas tout seul.
donc, je ne peux pas avoir les bonne la valeur de ligne et colonne
int ligne = index % NbrMot; int colonne = index / NbrMot;
si tu as une autre solution ? merci @+
|
|
|
|
samedi 19 janvier 2008 à 15:55:05 |
Re : simplifier prog.

mezaya
|
pourquoi ça marche pas ? tu as une erreur de compilation, d'execution ?
essaye ça :
void Load_Objet(char* Files)
{
char nomFichier[100];
strcpy_s( nomFichier, 100, "map/" );
strcat_s( nomFichier, 100, Files );
fstream fichier( nomFichier, ios::nocreate, filebuf::sh_read );
int ligne = 0;
while( !fichier.eof() )
{
int colonne = 0;
while( fichier.peek() != '\n' )
{
fichier >> Map[ligne][colonne];
++colonne;
}
++ligne;
}
|
|
|
|
samedi 19 janvier 2008 à 16:57:18 |
Re : simplifier prog.

F0ra
|
toujours le même problème avec ton code avec la ligne : fstream fichier( nomFichier, ios::nocreate, filebuf::sh_read ); strcpy_s, Nocreate, sh_read undeclared identifier avec:
#include <stdio.h> #include <stdlib.h> #include <math.h> #include <time.h> #include <string.h> #include <stdio.h> #include <iostream> // si nécessaire #include <fstream> fstream fichier; float reel;
|
|
|
|
samedi 19 janvier 2008 à 17:14:30 |
Re : simplifier prog.

mezaya
|
tu ne compile pas sous visual 2005 ?
il y a une version gratuite si tu veux.
sinon donc strcpy_s --> strcpy( nomfichier, "maps/" );
et les fonctions fstream sont dans le namespace std;
decalration std::fstream fichier( nomFichier, std::ios::nocreate, std::filebuf::sh_read );
ou utilise un :
using namespace std;
avant de declarer fstream;
|
|
|
|
samedi 19 janvier 2008 à 17:22:17 |
Re : simplifier prog.

F0ra
|
j'ai la version 2003
|
|
|
Cette discussion est classé dans : int, number, char, fp, szword
Répondre à ce message
Sujets en rapport avec ce message
Dans le genre prenant........ [ par Xs ]
oui !c 'est trés chiant !j'explique mon pb : j'ai un code source, fais par moi-meme, et dedans, je veux que l'on saisisse des renseignement comme le l
int to char ! [ par nullspace ]
Voila mon problème !J'ai une résultat sous forme de variable INT, et je veux que ce résultat soit affecté à une variable de type CHAR.Genre, si j'ai 6
tableau char [ par dingue007 ]
Voila je dois faire un prog en C++ : un tableau avec les mois de lannée et quand je tape un chiffre il me sort le mois ! mais je narrive pas a faire l
conversion de char en int [ par magicoz ]
Bonjour,Est-ce qu'il y aurait quelqu'un qui pourrait me dire comment convertir un caractère en un entier ? Un prog assez simple à réaliser, car les sc
lire dans un fichier [ par skeul ]
Bonjour,je rencontre qqs difficultés a faire une fonction qui lit un fichier et qui rentre la chaine de caractere dans un tableauy a comme un probleme
Au secour ! [ par slashparof ]
Au secour! Je ne comprend vraiment pas le problème visual studio me compile cette fonction correctement, mais mon programme cause une erreur quand j'a
convertir un int en char ou en string [ par mimyne ]
Bonjour je voudrai savoir comment on peut faire en c++ pour convertir un int en char ou bien en string la fonction itoa ne marche pas merci
vecteur avec int et char [ par Tyroflan ]
int **boursemain(){...cin >> nombre;for (unsigned int i=0;i bourse[i] = new int [5];donc je crée autant de vecteurs bourse que l'indique la variable
vecteur avec int et char [ par Tyroflan ]
int **boursemain(){...cin >> nombre;for (unsigned int i=0;i bourse[i] = new int [5];donc je crée autant de vecteurs bourse que l'indique la variable
vc++ : pb d'ecriture dans fichier taille sup a prévu [ par adidmamah ]
g un groooooo pb qui m'épate sincerementj'ecris dans un fichier en utilisant un structure : struct data { char nom[30];
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|