Avec les 2 fonctions suivantes, concentrez-vous sur les lignes avec les * commentaires. Lorsque l'instruction cout < < s'exécute, aucune décimale n'est affichée. 3021680380/10000000 devient 302. au lieu de 302.1680.Utilisation incorrecte de SetPrecision
void convert(){
setprecision(4); //************************
newFileTime = new double[numRec]; //***********
newOffset = new int[numRec];
newSize = new int[numRec];
newNum = new int[numRec];
newType = new int[numRec];
newTime = new int[numRec];
for(int i = 0; i<numRec; i++){
newFileTime[i] = fileTime[i]/10000000; //**********
newOffset[i] = offset[i]/512;
newSize[i] = fileSize[i]/512;
newNum[i] = 0;
if(type[i] == "Write"){
newType[i] = 0;
}else{
newType[i] = 1;
}
newTime[i] = responseTime[i]/10000000;
}
}
void exports(){
setprecision(4); //**************
ofstream fout;
fout.open("prxy_0.ascii");
{
if(!fout){
cout <<"File opening failed. \n";
}
}
fout<< numRec <<endl;
for(int i = 0; i < numRec; i++){
fout<< newFileTime[i] << " " << newNum[i] << " " << newOffset[i] << " " << newSize[i] << " " << newType[i] << " " << newTime[i];
cout<< fileTime[i] << " " << newFileTime[i] <<endl; //**********
if(i != numRec - 1){
fout<<endl;
}
}
fout.close();
}
Des idées?
Titre modifié pour arrêter d'accuser le code de bibliothèque bien testé. – djechlin
Ce n'est pas comme ça que vous utilisez 'setprecision()'. Voir l'exemple dans http://www.cplusplus.com/reference/iomanip/setprecision/ – NPE
il peut ne pas être classique, mais cela fonctionne – theB3RV