Donc, je suis en train d'écrire un programme pour un projet d'école, et une partie de celui-ci nécessite que l'utilisateur mette un nombre aléatoire sur la ligne de commande. Le programme utilise ensuite atof pour convertir le nombre en float afin que je puisse faire des calculs avec lui. Cette partie du programme ressemble à:Atof ne fonctionne pas?
#include <iostream>
#include <cstdlib>
#include "bmplib.h" //this is just something the prof. gave us to help read the image
#include <cmath> //i might use this later in the program
#define nummethods 2
using namespace std;
unsigned char input[256][256][3];
unsigned char bg [256][256][3];
unsigned char output[256][256][3];
unsigned char m[2][256][256];
int main(int argc, char *argv[])
{
int h,i,j,k;
double x,y,z;
//code to read img here and make sure user puts correct number of arguments in
//command line
for (i=0;i<256;i++){
for(k=0;k<3;k++){
y = y + input[i][0][k];
}
}
cout >> y >> endl; //this is giving me 36,164,75 which in RGB is green
x = atof(argv[3]); //the number was the 3rd thing typed in at the command line
cout << x << endl;
z = x + y; //this isn't the exact program, but you get the idea
cout << z << endl;
//there's some more code after this written by the prof. that manipulates the image,
//but i don't think its relevant since it does not use the argv[3] value
}
Le programme a été compilé mais cela n'a pas fonctionné correctement. Je l'ai testé en ajoutant un cout < < x; et cela montrait qu'atof me donnait le mauvais numéro. Par exemple, lorsque je mets 5,0 en tant que mon numéro dans la ligne de commande, cela montre que mon x est 379.7465. Une idée de ce qui ne va pas?
Par exemple, faire 'atof (argv [1])' et l'essayer avec './program 5.0' et voir ce que vous obtenez –
avez-vous mis le fichier d'en-tête pour atof? Testcase serait utile – eran
Essayez aussi 'cout << argv [3]'. Ce n'est peut-être pas ce que vous attendez. – stardt