Sujet: [C++] lecture d un fichier java par un
suber600
-
hibour -
hibour -
voila le but: creer un fichier en java ( mais au niveau byte ... c est a dire avec le bloc note on comprend rien) et le faire relire par un programme C++.
J aimerais savoir si c est possible , le fichier je compose d entier et de float (ou double).
J arrive a creer un fichier un java mais mon programme c++ n arrive pas a le lire.
Voici un programme en C++ qui ecrit des entier et qui les lit(le programe fonctionne):
// programme C++ qui ecrit et qui lit des entiers
// labo1_3.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <fstream.h>
#include <stdlib.h>
#include <stdio.h>
void main (void)
{
filebuf fichier;
int n;
// double dou=5;
//ecriture dans un fichier
if(!fichier.open ("fDOWNLOAD/Classictest.txt",ios::out))
{
cout<<"Erreur d ouverture!"<<endl;
exit(1);
}
ostream flux(&fichier);
for(int i=10;i>0;i--)
{
n=i*5-6;
cout<<i<<"(I) on ecrit "<<n<<endl;
flux.write((char*)&n,sizeof(int));
// flux.write((char*)&dou,sizeof(double));
}
flux.flush();
fichier.close();
cout<<"lecture du fichier"<<endl;
//if(!fichier.open ("FClassic.txt",ios::in))
if(!fichier.open ("fDOWNLOAD/Classictest.txt",ios::in))
{
cout<<"Erreur d ouverture!"<<endl;
exit(1);
}
cout<<"Apres lecture du fichier"<<endl;
istream fluxi(&fichier);
fluxi.read((char*)&n,sizeof(int));
while(!fluxi.eof())
{
cout<<"Le fichier cree en java contient : "<<n<<endl;
fluxi.read((char*)&n,sizeof(int));
//fluxi.read((char*)&n,sizeof(double));
}
fichier.close();
cout<<"Fermeture du fichier"<<endl;
}
biensur lorque je lui donne mon fichier java cela ne marche pas
voila le but: creer un fichier en java ( mais au niveau byte ... c est a dire avec le bloc note on comprend rien) et le faire relire par un programme C++.
J aimerais savoir si c est possible , le fichier je compose d entier et de float (ou double).
J arrive a creer un fichier un java mais mon programme c++ n arrive pas a le lire.
Voici un programme en C++ qui ecrit des entier et qui les lit(le programe fonctionne):
// programme C++ qui ecrit et qui lit des entiers
// labo1_3.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <fstream.h>
#include <stdlib.h>
#include <stdio.h>
void main (void)
{
filebuf fichier;
int n;
// double dou=5;
//ecriture dans un fichier
if(!fichier.open ("fDOWNLOAD/Classictest.txt",ios::out))
{
cout<<"Erreur d ouverture!"<<endl;
exit(1);
}
ostream flux(&fichier);
for(int i=10;i>0;i--)
{
n=i*5-6;
cout<<i<<"(I) on ecrit "<<n<<endl;
flux.write((char*)&n,sizeof(int));
// flux.write((char*)&dou,sizeof(double));
}
flux.flush();
fichier.close();
cout<<"lecture du fichier"<<endl;
//if(!fichier.open ("FClassic.txt",ios::in))
if(!fichier.open ("fDOWNLOAD/Classictest.txt",ios::in))
{
cout<<"Erreur d ouverture!"<<endl;
exit(1);
}
cout<<"Apres lecture du fichier"<<endl;
istream fluxi(&fichier);
fluxi.read((char*)&n,sizeof(int));
while(!fluxi.eof())
{
cout<<"Le fichier cree en java contient : "<<n<<endl;
fluxi.read((char*)&n,sizeof(int));
//fluxi.read((char*)&n,sizeof(double));
}
fichier.close();
cout<<"Fermeture du fichier"<<endl;
}
biensur lorque je lui donne mon fichier java cela ne marche pas
voila le but: creer un fichier en java ( mais au niveau byte ... c est a dire avec le bloc note on comprend rien) et le faire relire par un programme C++.
J aimerais savoir si c est possible , le fichier je compose d entier et de float (ou double).
J arrive a creer un fichier un java mais mon programme c++ n arrive pas a le lire.
Voici un programme en C++ qui ecrit des entier et qui les lit(le programe fonctionne):
// programme C++ qui ecrit et qui lit des entiers
// labo1_3.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <fstream.h>
#include <stdlib.h>
#include <stdio.h>
void main (void)
{
filebuf fichier;
int n;
// double dou=5;
//ecriture dans un fichier
if(!fichier.open ("fDOWNLOAD/Classictest.txt",ios::out))
{
cout<<"Erreur d ouverture!"<<endl;
exit(1);
}
ostream flux(&fichier);
for(int i=10;i>0;i--)
{
n=i*5-6;
cout<<i<<"(I) on ecrit "<<n<<endl;
flux.write((char*)&n,sizeof(int));
// flux.write((char*)&dou,sizeof(double));
}
flux.flush();
fichier.close();
cout<<"lecture du fichier"<<endl;
//if(!fichier.open ("FClassic.txt",ios::in))
if(!fichier.open ("fDOWNLOAD/Classictest.txt",ios::in))
{
cout<<"Erreur d ouverture!"<<endl;
exit(1);
}
cout<<"Apres lecture du fichier"<<endl;
istream fluxi(&fichier);
fluxi.read((char*)&n,sizeof(int));
while(!fluxi.eof())
{
cout<<"Le fichier cree en java contient : "<<n<<endl;
fluxi.read((char*)&n,sizeof(int));
//fluxi.read((char*)&n,sizeof(double));
}
fichier.close();
cout<<"Fermeture du fichier"<<endl;
}
biensur lorque je lui donne mon fichier java cela ne marche pas
J aimerais savoir si c est possible , le fichier je compose d entier et de float (ou double).
J arrive a creer un fichier un java mais mon programme c++ n arrive pas a le lire.
Voici un programme en C++ qui ecrit des entier et qui les lit(le programe fonctionne):
// programme C++ qui ecrit et qui lit des entiers
// labo1_3.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <fstream.h>
#include <stdlib.h>
#include <stdio.h>
void main (void)
{
filebuf fichier;
int n;
// double dou=5;
//ecriture dans un fichier
if(!fichier.open ("fDOWNLOAD/Classictest.txt",ios::out))
{
cout<<"Erreur d ouverture!"<<endl;
exit(1);
}
ostream flux(&fichier);
for(int i=10;i>0;i--)
{
n=i*5-6;
cout<<i<<"(I) on ecrit "<<n<<endl;
flux.write((char*)&n,sizeof(int));
// flux.write((char*)&dou,sizeof(double));
}
flux.flush();
fichier.close();
cout<<"lecture du fichier"<<endl;
//if(!fichier.open ("FClassic.txt",ios::in))
if(!fichier.open ("fDOWNLOAD/Classictest.txt",ios::in))
{
cout<<"Erreur d ouverture!"<<endl;
exit(1);
}
cout<<"Apres lecture du fichier"<<endl;
istream fluxi(&fichier);
fluxi.read((char*)&n,sizeof(int));
while(!fluxi.eof())
{
cout<<"Le fichier cree en java contient : "<<n<<endl;
fluxi.read((char*)&n,sizeof(int));
//fluxi.read((char*)&n,sizeof(double));
}
fichier.close();
cout<<"Fermeture du fichier"<<endl;
}
biensur lorque je lui donne mon fichier java cela ne marche pas
voila le but: creer un fichier en java ( mais au niveau byte ... c est a dire avec le bloc note on comprend rien) et le faire relire par un programme C++.
J aimerais savoir si c est possible , le fichier je compose d entier et de float (ou double).
J arrive a creer un fichier un java mais mon programme c++ n arrive pas a le lire.
Voici un programme en C++ qui ecrit des entier et qui les lit(le programe fonctionne):
// programme C++ qui ecrit et qui lit des entiers
// labo1_3.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <fstream.h>
#include <stdlib.h>
#include <stdio.h>
void main (void)
{
filebuf fichier;
int n;
// double dou=5;
//ecriture dans un fichier
if(!fichier.open ("fDOWNLOAD/Classictest.txt",ios::out))
{
cout<<"Erreur d ouverture!"<<endl;
exit(1);
}
ostream flux(&fichier);
for(int i=10;i>0;i--)
{
n=i*5-6;
cout<<i<<"(I) on ecrit "<<n<<endl;
flux.write((char*)&n,sizeof(int));
// flux.write((char*)&dou,sizeof(double));
}
flux.flush();
fichier.close();
cout<<"lecture du fichier"<<endl;
//if(!fichier.open ("FClassic.txt",ios::in))
if(!fichier.open ("fDOWNLOAD/Classictest.txt",ios::in))
{
cout<<"Erreur d ouverture!"<<endl;
exit(1);
}
cout<<"Apres lecture du fichier"<<endl;
istream fluxi(&fichier);
fluxi.read((char*)&n,sizeof(int));
while(!fluxi.eof())
{
cout<<"Le fichier cree en java contient : "<<n<<endl;
fluxi.read((char*)&n,sizeof(int));
//fluxi.read((char*)&n,sizeof(double));
}
fichier.close();
cout<<"Fermeture du fichier"<<endl;
}
biensur lorque je lui donne mon fichier java cela ne marche pas
voila le but: creer un fichier en java ( mais au niveau byte ... c est a dire avec le bloc note on comprend rien) et le faire relire par un programme C++.
J aimerais savoir si c est possible , le fichier je compose d entier et de float (ou double).
J arrive a creer un fichier un java mais mon programme c++ n arrive pas a le lire.
Voici un programme en C++ qui ecrit des entier et qui les lit(le programe fonctionne):
// programme C++ qui ecrit et qui lit des entiers
// labo1_3.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <fstream.h>
#include <stdlib.h>
#include <stdio.h>
void main (void)
{
filebuf fichier;
int n;
// double dou=5;
//ecriture dans un fichier
if(!fichier.open ("fDOWNLOAD/Classictest.txt",ios::out))
{
cout<<"Erreur d ouverture!"<<endl;
exit(1);
}
ostream flux(&fichier);
for(int i=10;i>0;i--)
{
n=i*5-6;
cout<<i<<"(I) on ecrit "<<n<<endl;
flux.write((char*)&n,sizeof(int));
// flux.write((char*)&dou,sizeof(double));
}
flux.flush();
fichier.close();
cout<<"lecture du fichier"<<endl;
//if(!fichier.open ("FClassic.txt",ios::in))
if(!fichier.open ("fDOWNLOAD/Classictest.txt",ios::in))
{
cout<<"Erreur d ouverture!"<<endl;
exit(1);
}
cout<<"Apres lecture du fichier"<<endl;
istream fluxi(&fichier);
fluxi.read((char*)&n,sizeof(int));
while(!fluxi.eof())
{
cout<<"Le fichier cree en java contient : "<<n<<endl;
fluxi.read((char*)&n,sizeof(int));
//fluxi.read((char*)&n,sizeof(double));
}
fichier.close();
cout<<"Fermeture du fichier"<<endl;
}
biensur lorque je lui donne mon fichier java cela ne marche pas
A voir également:
- Sujet: [C++] lecture d un fichier java par un
- Sujet informatique pour exposé ✓ - Forum Études / Formation High-Tech
- Sujet tfc en télécommunication pdf - Forum Réseau
- Sujet de tfc déjà travaille en informatique pdf ✓ - Forum Études / Formation High-Tech
- Sujet de tfc déjà travaillé pdf - Forum Bases de données
- Sujet mémoire marketing - Forum Windows
2 réponses
je n'ai pas lu ton code et je n'ai meme pas envie, mais je pense q tu n pourras lire ton fichier fait en java car les données sont codées sur 1 octet(un byte c'est sur un octet) et un int en C++,c'est sur 4octets, donc essaies de prendre un autre type,je ne sais pas moi, essaies peut etre short.
tafiscobar
tafiscobar
Ce n'est pas possible de lire en java un fichier écrit en C/C++ (et inversement), car le codage des types de données n'est pas le même dans les 2 langages, par exemple : un char est sur 1 octet en C/C++, en Java c'est sur 2 octet, il y aussi le probleme d'architecture des big endian/little endian (https://fr.wikipedia.org/wiki/Endianness , c'est pour ça on trouve des Middlewares comme CORBA, SOAP..etc (des couches intermédiaire capable de faire le codage,/décodage des informations)
Si tu veux le faire vraiment alors soit tu utilise ces Middleware, soit tu écrit ton popre codeur/décodeur de format pour bien lire/écrire les données dans le bon ordre càd écrire des bytes bien ordonné après les lire dans le même ordre. utilise byte en java et char en C/C++.
;-)
Si tu veux le faire vraiment alors soit tu utilise ces Middleware, soit tu écrit ton popre codeur/décodeur de format pour bien lire/écrire les données dans le bon ordre càd écrire des bytes bien ordonné après les lire dans le même ordre. utilise byte en java et char en C/C++.
;-)