Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2003 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Convertir C++ en C

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Convertir C++ en C

n°2116467
baboye11
l'entre-aide avant tout.
Posté le 13-12-2011 à 13:37:02  profilanswer
 

Bonjour tout le monde,
 
j'ai vraiment besoin d'aide svp. En fait j'ai une page codée en C++ que je voudrais convertir en C.
 
Y'a pas tellement de différences mais y'a des trucs qui me dépassent, comme par exemple la bibliothèque "stream" qui est propre à C++, ofstream, iftream, &output, output_unit, etc...
 
Je voudrais que vous me recodez mes fonctions (que j'ai extrait de la page) en C SVP ???
 
Voici les fonctions (j'ai mis en gras ce qui m'échappe):
 
# include <cstdlib>
# include <iostream>
# include <iomanip>
# include <cstring>
# include <fstream>
# include <cmath>
# include <ctime>
 
using namespace std;
 
# include "cnf_io.H"
 
//***************************************************************************80
bool cnf_data_read ( string cnf_file_name, int v_num, int c_num,  
  int l_num, int l_c_num[], int l_val[] )
 
//****************************************************************************80
 
{
  int c_num2;
  bool error;
  int ierror;
  ifstream input;
  int l_c_num2;
  int l_num2;
  int l_val2;
  int length;
  string line;
  string rest;
  int v_num2;
  string word;
   
  error = false;
 
  input.open ( cnf_file_name.c_str ( ) );
 
  if ( !input )
  {
    cout << "\n";
    cout << "CNF_DATA_READ - Fatal error!\n";
    cout << "  Could not open file.\n";
    exit ( 1 );
  }
 
  while ( 1 )
  {
    getline ( input, line );
     
    if ( input.eof ( ) )
    {
      cout << "\n";
      cout << "CNF_DATA_READ - Fatal error!\n";
      cout << "  Error3 while reading the file.\n";
      exit ( 1 );
    }
 
    if ( line[0] == 'c' || line[0] == 'C' )
    {
      continue;
    }
 
 
 
 
  }
 
  ;
 
  while ( 1 )
  {
    getline ( input, line );
 
    if ( input.eof ( ) )
    {
      break;
    }
 
   
 
  input.close ( );
 
  return ;
}  
//****************************************************************************80
 
bool cnf_data_write ( int c_num, int l_num, int l_c_num[], int l_val[],  
  ofstream &output_unit )
 
//****************************************************************************80
 
{
  int c;
  bool error;
  int i1;
  int i2;
  int l;
  int l_c;
 
  error = false;
 
  l = 0;
 
  for ( c = 0; c < c_num; c++ )
  {
    i1 = 1;
    i2 = 10;
    for ( l_c = 0; l_c < l_c_num[c]; l_c++ )
    {
      output_unit << " " << setw(7) << l_val[l];
      l = l + 1;
 
      if ( ( ( l_c + 1 ) % 10 ) == 0 )
      {
        output_unit << "\n";
      }
    }
    output_unit << " " << setw(7) << 0 << "\n";
  }
 
  return error;
}

mood
Publicité
Posté le 13-12-2011 à 13:37:02  profilanswer
 

n°2116790
Lightness1​024
Posté le 15-12-2011 à 15:10:45  profilanswer
 

sinon le premier compilateur AT&T te fera tout ça a ta place si t'arrives a le retrouver :)

Message cité 1 fois
Message édité par Lightness1024 le 15-12-2011 à 15:11:00

---------------
http://projets.6mablog.com/
n°2116925
baboye11
l'entre-aide avant tout.
Posté le 16-12-2011 à 12:56:16  profilanswer
 

ok merci je vais essayer.

n°2117285
theshockwa​ve
I work at a firm named Koslow
Posté le 19-12-2011 à 16:43:31  profilanswer
 

Lightness1024 a écrit :

sinon le premier compilateur AT&T te fera tout ça a ta place si t'arrives a le retrouver :)


oui, c'est une bonne idée, ca, surtout que la stl n'était pas là dès le début.
 
Pour ce genre de tâche, il faut s'armer de courage et traduire, y'a pas de solution miracle, C++ permet d'exprimer le code d'une manière très différente de C, mais dans les exemples que tu donnes, la traduction devrait rester  assez restreinte en terme de portée, visiblement.
 
les streams correspondent dans ton cas au FILE* du C. Les ifstream vont pour Input File Stream donc ce sont des fichiers ouverts en lecture. Les ofstream sont des Output File Stream, donc des fichiers ouverts en écriture.

Message cité 1 fois
Message édité par theshockwave le 19-12-2011 à 16:44:21

---------------
last.fm
n°2119038
spamoa
Posté le 02-01-2012 à 15:09:40  profilanswer
 

theshockwave a écrit :


oui, c'est une bonne idée, ca, surtout que la stl n'était pas là dès le début.
 
Pour ce genre de tâche, il faut s'armer de courage et traduire, y'a pas de solution miracle, C++ permet d'exprimer le code d'une manière très différente de C, mais dans les exemples que tu donnes, la traduction devrait rester  assez restreinte en terme de portée, visiblement.
 
les streams correspondent dans ton cas au FILE* du C. Les ifstream vont pour Input File Stream donc ce sont des fichiers ouverts en lecture. Les ofstream sont des Output File Stream, donc des fichiers ouverts en écriture.


 
Ce qui veut dire implicitement qu'il faut également utiliser du fprintf et du fscanf pour gérer les entrés et sorties. Et je ne parle pas non plus des "string" qu'il va falloir gérer en char*. il y a quand même un peu de boulot.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Convertir C++ en C

 

Sujets relatifs
Appeler une librairie dynamique écrite en C dans Fortran sous Linux[C++] Utiliser un fichier texte comme ressource
[C#] Windows+C#+accès à l'AD et GPO[C] Lecteur port série windows.h (readFile()) + SDL
[C#] savoir si un processus est en train de réfléchir, possible ?Convertir CSV en SLK En C
[C#] Convertir caractères spéciaux HTMLConvertir code C# -> VBA ou VBA -> C#
C++ avec GDI+ convertir Tiff compressé LZW en Tiff compressé CCITT4[C++] Convertir une application PHP en C++ ou autre
Plus de sujets relatifs à : Convertir C++ en C


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR