Saludos, acabo de instalar la libreria gmp en codeblocks para hacer un código en c++ y apenas me estoy enseñando a usar algunas de sus funciones, por ejemplo si quiero declarar una variable uso el mpz_t, que tengo entendido es el equivalente a un int(un int del tamaño que tu quieras), despues inicializo esa variable con mpz_init, y despues le asigno un valor a la variable, pero en los ejemplos que he visto para asignarle un valor tienes que ponerle por ejemplo:
mpz_set_str(num1, "123456789101112131415161718192021222324252627282930", 10);
pero qué pasa si tu quieres que sea el usuario el que le ingrese el numero que se le va a asignar a num1, en vez de escribirlo directamente en el código, cómo haría esto??
gracias
Es lo mismo, solo tienes que leer la entrada como texto:
string texto;
cin>>texto;
mpz_set_str(num1,texto.c_str(), 10); // desconozco si tiene sobrecarga para strings, asi que lo dejo como const char*
gracias amchacon por tu respuesta, otra duda, antes de hacer lo de ingresarle el numero, si le inicializo con mpz_init(numero); me aparece un mensaje de error que dice undefined reference to '_gmpz_init' y no entiendo por qué, si la libreria no se hubiera instalado me aparecería un error, y cuando declaro la variable con mpz_t tampoco me aparece ningun mensaje de error, ¿qué puede ser lo que esta mal?
#include <iostream>
#include <stdio.h>
#include <gmp.h>
#define MAX 40
using namespace std;
int main()
{
mpz_t numero;
mpz_init(numero);
return 0;
}
Error de instalación, se te ha olvidado hacer algún link.
Las variables no necesitan ser linkadas, las funciones sí.
Puede estar bien instalada, y que no le estés pasando las opciones de enlazado al compilador.
gracias por sus respuestas, ya por fin pude hacerlo funcionar, lo que hice fue irme a la opcion Compiler Settings >> linker settings >> add >> gmp/lib/libgmp.a y ya con esto ya no tengo problemas, una ultima duda amchacon a qué te refieres con:
desconozco si tiene sobrecarga para strings, asi que lo dejo como const char*