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)

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


1 2

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];


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,530 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.