Calculadora en c desde shell

Iniciado por Pol23, 23 Septiembre 2018, 16:35 PM

0 Miembros y 1 Visitante están viendo este tema.

Pol23

Hola,

Me han pedido hacer una calculadora en c.
Si usara scanf no tendría problemas, la cuestión es que tengo que hacerlo a través del main utilizando :

int main (int argc, char**argv[] )
así, cuando ejecute el programa con ./programa x y, en donde x e y serán los números a introducir.

La cuestión es que no sé como hacerlo, sé también que argv tendré que pasarlos a enteros, ya que argv si no lo he entendido mal, son caracteres.

Alguna pista/ayuda?

Gracias

MAFUS

Piensa en argv cómo un array de cadenas que te hayan dado rellenado y argc contiene cuántos elementos tiene argv.
Debes saber que:
argv[0] es el nombre del programa,
argv[1] es el primer argumento,
argv[2] es el segundo argumento.
Y así.
En caso de tu programa argc debería valer 3 pues tienes tres cadenas un argv.

Pol23

Gracias Mafus,

Eso lo había encontrado buscando por Google, lo único es que es una calculadora así que todo lo tomaba como arrays y tenía que transformarlo a int para poder realizar operaciones...

y he encontrado el "atoi" --> array to int, así que un paso más...

Lo único que me falta por hacer es enviar la salida a un fichero... que de eso, por ahora ni idea, sí que he visto la entrada estandar, salida estandar y salida de error, pero aun no sé como enviar de un sitio a otro o a un fichero...


Pol23

Gracias por la respuesta Omar,

Lo he leído todo pero creo que no lo soluciona, ya que según el enunciado, primero tengo que enviar la salida estandar a la salida de error y de ahí a un fichero.

Si lo que quisiera es escribir algo en un fichero directamente, creo que la respuesta está en el manual que me has dado, pero creo que en este caso no.

Por lo que he leído, la entrada estandar es el 0, la salida estandar es el 1 y salida de error es el 2, pero eso no sé traducirlo a c

Pol23

He encontrado ya la respuesta, entre la variable errno y la llamada FILE*infile :)

BloodSharp

Cita de: Pol23 en 23 Septiembre 2018, 16:35 PM(...)La cuestión es que no sé como hacerlo, sé también que argv tendré que pasarlos a enteros, ya que argv si no lo he entendido mal, son caracteres.

Alguna pista/ayuda?

double atof (const char* str);


B#



Pol23

Gracias a todo por vuestras respuestas!!