begin process at 2012 02 12 10:25:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Fichier & Disque

 > 

simplifier prog.


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

simplifier prog.

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ée dans : int, number, char, fp, szword


Répondre à ce message

Sujets en rapport avec ce message

besoin d'aide sur un programme en C éxécutable mais qui se bloque au début " recherche et affichage de palindromes " [ par nirvanitta ] salut tous le monde Mon programme consiste a ouvrir un fichier et chercher tous les palindromes et les afficher avec leurs numéros de lignes et leurs Allocation dynamique tableau 2D : erreur de seg [ par noname001 ] Bonjour à tous, [^^happy13] j'aimerais faire appel à vos lumières concernant deux codes. Ils ont tous les deux pour but de créer un tableau 2D dynami convertsion int en unsigned char [ par avg ] Salut tout le monde j'ai une souci pour convertir un int en unsigned char[] voir le code c++ qui affiche l'erreur [code=cpp]int a=100; unsigned char Tableaux - Gestion dynamique de la mémoire [ par Smanyx ] Salut ! Je voudrais écrire un programme qui accepte des noms saisis au clavier et les amasse dans un tableau. Comme les noms sont entrés dans un bouc cnvertir un int en char [ par fatenbenhamadi ] bonjour, comment convertir un int en char? NB:je developpe sous CVI merci String to Char puis Char to Int puis Int to Char puis Char to Int [ par gooooo ] Bonjour, Je débute avec Visual C++ et j'avoue que j'ai un peu de mal. Habituellement j'utilise Qt et la il y a du changement. Voici le problème : J SDL et windows.h sous sygwin [ par agent933 ] salut je travaille en ce moment sur un programme en langage.grosso modo jutilise le port serie pour recevoir donnees et ensuite utilise une interface erreur de pointeur [ par africanwinners ] Bonsoir j'ai concu un programme c qui permet de lire un fichier,de supprimer les doublons (les doubles) mais il y a des problèmes lors de la lecture d probléme de déplacement d'une case a une autre dans un tableaux de type char* [ par mlikos ] Bonjour, est ce qq1 peut m'aider a résoudre ce problème : #include #include #include struct coordonnees { int x; int y; }; typedef struc


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,385 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales