begin process at 2012 05 30 14:12:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Algorithme

 > 

Maths

 > 

Programme en c++


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

Programme en c++

mercredi 13 avril 2011 à 14:01:44 | Programme en c++

noussa44

Bonjour à tous,
Je suis débutant en c++ et j'ai un problème dans un exercice qui demande de lire à partir d'un fichier texte des réels et les stockés dans un tableau sachant que les réels sont séparés par un espace
mais j'ai pas trouvé la solution pour cela je me suis fait recours sur votre aide et j'esper que j 'aurai des reponses svp et merci!!
j'ai fait un code mais je suis bloqué
Code C/C++ :
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
void main() {
	int n;
	float *tab = new int [n]; 
ifstream fichier("fiche.txt");
if ( !fichier )
        cout << "fichier inexistant";
else
{
bool b=true;
while( !fichier.eof() )
{
	getline(fichier, Ligne);
for(i=0;i<=n;i++)
fiche>>tab[i];
}
for(i=0;i<=n;i++){
	cout<<tab[i]<<endl;}
fiche_close();			
return 0;
}

Le problème c'est comment remplir le tableau
mercredi 13 avril 2011 à 14:53:38 | Re : Programme en c++

CptPingu

Administrateur CodeS-SourceS
* Évite les "using namespace", voir: [ Lien ]
* int main() et non void main()
* new int[n], ok, mais que vaut n ?

Comment est structuré le tableau ? Si le nombre de colonne est fixe, ça va être très facile.

________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
mercredi 13 avril 2011 à 15:49:53 | Re : Programme en c++

noussa44

Merci
mais le problème comment remplir le tableau sachant chaque réel doit être enregistré dans une case du tableau
mercredi 13 avril 2011 à 15:57:10 | Re : Programme en c++

CptPingu

Administrateur CodeS-SourceS
Réponse acceptée !
J'avais bien compris., mais je ne peux répondre à cette question, si tu ne réponds pas d'abord à la mienne.
A quoi ressemble le fichier ? Comment est structuré celui-ci ?

________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
jeudi 14 avril 2011 à 12:04:30 | Re : Programme en c++

noussa44

Bonjour,
je réponds à ton question mon fichier contient des "float" sont séparés par un espace je veux stocker chaque float dans une case de tab, Merci pour votre aide.
jeudi 14 avril 2011 à 12:26:37 | Re : Programme en c++

CptPingu

Administrateur CodeS-SourceS
Réponse acceptée !
Utilise std::getline, il permet de lire des valeurs d'un flux (fichier ou flux de caractères), séparés par un délimiteur choisi.
Tu fais d'abord un std::getline avec un \n pour les sauts de lignes, ce qui te permet de récupérer les lignes une à une.
Puis, sur chacune de ces lignes, tu refais un std::getline avec un ' ' pour avoir chacun des mots.

Au lieu de t'embêter avec un tableau, utilise une liste (std::list) qui gère le redimensionnement et la mémoire pour toi.

Code C/C++ :
#include <fstream>
#include <iostream>
#include <sstream>
#include <list>
#include <cstdlib>

/* Convertit un string en n'importe quel type numérique */
template<typename T>
bool fromString(const std::string& str, T& dest)
{
    std::istringstream iss(str);
    return iss >> dest != 0;
}

int main()
{
  std::list<double> tab;
  std::ifstream fichier("fiche.txt");
  if (!fichier)
  {
    std::cout << "fichier inexistant" << std::endl;
    return 1;
  }

  std::string ligne;
  while (std::getline(fichier, ligne))
  {
    std::istringstream buff(ligne);
    std::string mot;
    while (std::getline(buff, mot, ' '))
    {
      if (!mot.empty())
      {
	std::cout << "\"" << mot << "\"" << std::endl;
	double f;
	if (fromString(mot, f)) // Ajout uniquement si réussite de la conversion de string vers double
	  tab.push_back(f);
      }
    }
  }

  // Lecture du tableau, voir ce qu'est un itérateur
  for (std::list<double>::const_iterator it = tab.begin();
      it != tab.end(); ++it)
    std::cout << *it << std::endl;

  fichier.close();

  return 0;
}


________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
jeudi 14 avril 2011 à 12:46:50 | Re : Programme en c++

noussa44

Merci CptPingu,
j'ai modifié mon code mais j'ai pas comprit cet erreur
Erreur 1 fatal error C1075: fin de fichier rencontrée avant que l'élément accolade '{' gauche de '.\fichier1.cpp(17)' soit équilibré c:\Documents and Settings\acer1\Mes documents\Visual Studio 2008\Projects\fichier1\fichier1\fichier1.cpp 51 fichier1
jeudi 14 avril 2011 à 12:53:21 | Re : Programme en c++

noussa44

ah c'est bon j'ai oublié l'accolade de fermeture
mais je pense le tableau plus simple que une liste car je veux calculer la tang[size=50]-1[/size] pour chaque float
Merci pour votre aide
jeudi 14 avril 2011 à 13:11:54 | Re : Programme en c++

noussa44

salut,
je peux pas afficher tous les "float" de mon fichier
voici mon fichier:0.038760 0.238095 -0.206897 0.178571 -0.058824 -0.103448 0.135135 0.250000 -0.095238 0.192308 -0.157895 0.172414 0.089286 -0.067416 0.113636
Il commence par 0.135135 et les autres........... ppfffffff je sais pas où le problème
jeudi 14 avril 2011 à 14:30:03 | Re : Programme en c++

CptPingu

Administrateur CodeS-SourceS
Réponse acceptée !

mais je pense le tableau plus simple que une liste car je veux calculer la tang-1 pour chaque float


Qu'est-ce qui t'empêche de le faire ?

Code C/C++ :
for (std::list<double>::const_iterator it = tab.begin();
      it != tab.end(); ++it)
    std::cout << tan(*it) << std::endl;


Si tu veux accéder aux éléments par les [], remplace std::list par std::vector. En C++, il rarement utile d'utiliser les tableaux du C.

________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question

1 2

Cette discussion est classée dans : fichier, programme, code, include, tab


Répondre à ce message

Sujets en rapport avec ce message

Petit probleme de code en C sur Linux !! [ par UncleShu ] Je voudrais créer un fichier dans le réperoire personnel d'un utilisateur mais mon code ne marche pas !!#include #include #include #define DIR $HOM #include circulaires [ par abubu38 ] Salut, J'ai un gros probleme de compilation au niveau des .h :fichier f1.h : #include f2.h class A { // définition nécéssitant la classe GetAsyncKeyState [ par sebleboss2002 ] Bon, c'est encore moi, ce coup-ci, j'ai trouvé (plus ou moins) comment faire ce que je voulais :#include #include <br Erreurs de compilations bizarres avec Visual C++ 6 [ par VTS_35 ] Bonjour,G encore des problèmes de compilation avec mon programme. Je me suis rendu compte que le programme allait devenir balaise, alors j'ai décidé d Fichier qui ne s'écrit pas [ par PsyCaDi ] Bonjour,J'ai un petit pb avec un prog.Je me sers de fstream pour écrire dans un fichier.Voilà rapidement mon code :ofstream Fichier(str_MonFichier);Fi Structure avec un fichier [ par orangepulpe57 ] Bonjour,Je doit réaliser pour la fac un programme qui convertit le code morse en caractère. Le code morse est inscrit sur un fichier txt comme suit:A Executer du code d'un fichier exterieur [ par un4given ] Bonjour!Je possède aujourd'hui un programme principal dans lequel je colle du code C écrit dans un autre fichier a l'aide d'un script Matlab. Le fait récupération d'un fichier dans un tableau [ par dgac ] Bonjour j'ai essayé le code suivant[CODE] #include&lt Ecriture dans un fichier [ par 0x80h4x0r ] Salut,J'ai code un petit programme de hook de clavier qui ecrit les touches sur un fichier .txt . le probleme c'est que si je ne code pas le nom absol de C vers C++ ? [ par boualiasma ] Salut, J'ai crée mon programme C sous Windows avec Visaul Studio 2008. Lorsque j'ajoute un fichier alors je trouve un fichier c++. Mais, je mis par e


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 0,484 sec (4)

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