certains int sont trop gros pour être stockés uniquement sur 16 bits
#include
#include
#include
int main()
{
using namespace std;
ifstream liste("liste_de_fichiers.txt", ios::in);
if(liste)
{
string lisligne;
string filename0, filename1,filename2,filename3,filename4;
string ligne;
double doublea,doubleb,doublec,doubled,doublee,doublef;
double double1, double2, double3, double4, double5, double6;
while(getline(liste, lisligne))
{
liste >> filename0; //lecture du nom de fichier dans un fichier "liste de fichiers"
filename1 = "/home/rs/Desktop/eclats/" + filename0 + "_1"; //création du nom du fichier où sera retranscrite la colonne 1
filename2 = "/home/rs/Desktop/eclats/" + filename0 + "_2"; //colonne 2
filename3 = "/home/rs/Desktop/eclats/" + filename0 + "_3"; // 3
filename4 = "/home/rs/Desktop/eclats/" + filename0 + "_4"; // 4
filename0 = "/home/rs/Desktop/données_modèles/données_modèles/2011/" + filename0; //Nom du fichier de base (avec toutes les colonnes)
ifstream fichier0(filename0.c_str(), ios::in); //fichier lecture
ofstream fichier1(filename1.c_str(), ios::out); // ecritures
ofstream fichier2(filename2.c_str(), ios::out);
ofstream fichier3(filename3.c_str(), ios::out);
ofstream fichier4(filename4.c_str(), ios::out);
if(fichier0 && fichier1 && fichier2 && fichier3 && fichier4)
{
fichier0 >> doublea >> doubleb >> doublec >> doubled >> doublee >> doublef; //lecture des 6 colonnes
//retranscription d'une colonne par fichier
fichier1 > double1 >> double2 >> double3 >> double4 >> double5 >> double6;
fichier1 << double3*100;
fichier2 << double4*100;
fichier3 << double5*100;
fichier4 << double6*100;
}
//fichiers traités
cout<<filename0<<endl;
cout<<filename1<<endl;
cout<<filename2<<endl;
cout<<filename3<<endl;
cout<<filename4<<endl;
}
else
cerr<<"Impossible d'ouvrir le fichier!1"<<endl;
}
liste.close();
}
else
cerr<<"Impossible d'ouvrir le fichier!"<<endl;
return 0;
}
rattlesnake a écrit:Au fait, je pensais que l'on me demandait seulement de convertir les int en chaines de caractères de 16bits et de les stocker dans un fichier, mais après explication, ils veulent que j'écrive directement dans un fichier binaire sous format 16bits, sachant que la lecture du fichier de base est en ASCII.
int x = 124;
std::string ret;
for (unsigned int mask=0x80000000; mask; mask>>=1) {
ret += (x & mask) ? "1" : "0";
}
ret; // chaîne de 0 et 1Cliffe a écrit:Pour convertir tes int.
- Code: Tout sélectionner
int x = 124;
std::string ret;
for (unsigned int mask=0x80000000; mask; mask>>=1) {
ret += (x & mask) ? "1" : "0";
}
ret; // chaîne de 0 et 1
Cliffe a écrit:bah tu recopie les chaînes dans un fichier non ?
#include // std::cerr
#include // std::ifstream std::ofstream
#include // std:string
#include // EXIT_SUCCESS
int main() {
ifstream liste("liste_de_fichiers.txt", ios::in);
if(liste) {
std::string file_name;
while(getline(liste, file_name)) {
ifstream f0("/home/modis/Desktop/données_modèles/données_modèles/2011/" + file_name, ios::in);
ofstream f1("/home/modis/Desktop/eclats/" + file_name + "_1", ios::out | ios::binary);
ofstream f2("/home/modis/Desktop/eclats/" + file_name + "_2", ios::out | ios::binary);
ofstream f3("/home/modis/Desktop/eclats/" + file_name + "_3", ios::out | ios::binary);
ofstream f4("/home/modis/Desktop/eclats/" + file_name + "_4", ios::out | ios::binary);
if (f0 && f1 && f2 && f3 && f4) {
double a, b, c, d, e, f;
std::string ligne;
while(getline(f0, ligne)) {
f0 >> a >> b >> c >> d >> e >> f;
f1 << (int)(c * 100.);
f2 << (int)(d * 100.);
f3 << (int)(e * 100.);
f4 << (int)(f * 100.);
}
f1 << std::endl; f2 << std::endl; f3 << std::endl; std::cout << f4 << std::endl;
f0.close(); f1.close(); f2.close(); f3.close(); f4.close();
}
else
std::cerr << "Impossible d'ouvrir le fichier !" << std::endl;
}
liste.close();
}
else
std::cerr << "Impossible d'ouvrir le fichier !" << std::endl;
return EXIT_SUCCESS;
}Cliffe a écrit:
- Code: Tout sélectionner
#include // std::cerr
#include // std::ifstream std::ofstream
#include // std:string
#include // EXIT_SUCCESS
int main() {
ifstream liste("liste_de_fichiers.txt", ios::in);
if(liste) {
std::string file_name;
while(getline(liste, file_name)) {
ifstream f0("/home/modis/Desktop/données_modèles/données_modèles/2011/" + file_name, ios::in);
ofstream f1("/home/modis/Desktop/eclats/" + file_name + "_1", ios::out | ios::binary);
ofstream f2("/home/modis/Desktop/eclats/" + file_name + "_2", ios::out | ios::binary);
ofstream f3("/home/modis/Desktop/eclats/" + file_name + "_3", ios::out | ios::binary);
ofstream f4("/home/modis/Desktop/eclats/" + file_name + "_4", ios::out | ios::binary);
if (f0 && f1 && f2 && f3 && f4) {
double a, b, c, d, e, f;
std::string ligne;
while(getline(f0, ligne)) {
f0 >> a >> b >> c >> d >> e >> f;
f1 << (int)(c * 100.);
f2 << (int)(d * 100.);
f3 << (int)(e * 100.);
f4 << (int)(f * 100.);
}
f1 << std::endl; f2 << std::endl; f3 << std::endl; std::cout << f4 << std::endl;
f0.close(); f1.close(); f2.close(); f3.close(); f4.close();
}
else
std::cerr << "Impossible d'ouvrir le fichier !" << std::endl;
}
liste.close();
}
else
std::cerr << "Impossible d'ouvrir le fichier !" << std::endl;
return EXIT_SUCCESS;
}
#include // std::cerr
#include // std::ifstream std::ofstream
#include // std:string
#include // EXIT_SUCCESS
int main() {
ifstream liste("liste_de_fichiers.txt", ios::in);
if(liste) {
std::string file_name;
while(getline(liste, file_name)) {
ifstream f0("/home/modis/Desktop/données_modèles/données_modèles/2011/" + file_name, ios::in);
ofstream f1("/home/modis/Desktop/eclats/" + file_name + "_1", ios::out | ios::binary);
ofstream f2("/home/modis/Desktop/eclats/" + file_name + "_2", ios::out | ios::binary);
ofstream f3("/home/modis/Desktop/eclats/" + file_name + "_3", ios::out | ios::binary);
ofstream f4("/home/modis/Desktop/eclats/" + file_name + "_4", ios::out | ios::binary);
if (f0 && f1 && f2 && f3 && f4) {
double a, b, c, d, e, f;
std::string ligne;
while(getline(f0, ligne)) {
f0 >> a >> b >> c >> d >> e >> f;
f1 // std::cerr
#include // std::ifstream std::ofstream
#include // std:string
#include // EXIT_SUCCESS
int main() {
std::ifstream liste("liste_de_fichiers.txt", std::ios::in);
if(liste) {
std::string file_name;
while(getline(liste, file_name)) {
std::ifstream f0(("/home/modis/Desktop/données_modèles/données_modèles/2011/" + file_name).c_str(), std::ios::in);
std::ofstream f1(("/home/modis/Desktop/eclats/" + file_name + "_1").c_str(), std::ios::out | std::ios::binary);
std::ofstream f2(("/home/modis/Desktop/eclats/" + file_name + "_2").c_str(), std::ios::out | std::ios::binary);
std::ofstream f3(("/home/modis/Desktop/eclats/" + file_name + "_3").c_str(), std::ios::out | std::ios::binary);
std::ofstream f4(("/home/modis/Desktop/eclats/" + file_name + "_4").c_str(), std::ios::out | std::ios::binary);
if (f0 && f1 && f2 && f3 && f4) {
double a, b, c, d, e, f;
std::string ligne;
while(getline(f0, ligne)) {
f0 >> a >> b >> c >> d >> e >> f;
f1 << (int)(c * 100.);
f2 << (int)(d * 100.);
f3 << (int)(e * 100.);
f4 << (int)(f * 100.);
}
f1 << std::endl; f2 << std::endl; f3 << std::endl; std::cout << f4 << std::endl;
f0.close(); f1.close(); f2.close(); f3.close(); f4.close();
}
else
std::cerr << "Impossible d'ouvrir le fichier !" << std::endl;
}
liste.close();
}
else
std::cerr << "Impossible d'ouvrir le fichier !" << std::endl;
return EXIT_SUCCESS;
}
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité
Tu pars déja ?
Identification
Pas encore inscrit ?
Ou identifiez-vous :