Programación General => C/C++ => Mensaje iniciado por: Epa en Jueves 5 de Noviembre de 2009, 20:18
Título: problema char* en linux
Publicado por: Epa en Jueves 5 de Noviembre de 2009, 20:18
Buenas, haber si alguien me puede ayudar con esta duda por favor.
Estoy haciendo un programita y quiero que sea multiplataforma. Lo hice en dev-cpp y ahora quiero arreglarlo para que me compile en linux. Y estoy teniendo problemas con una funcion:
void pause(char *msg);
que tipo tendria que ser char* en linux? porque me da error de conversion cuando intento llamarla con una cadena como: pause("cadena");
Saludos y gracias
Título: Re: problema char* en linux
Publicado por: Eternal Idol en Jueves 5 de Noviembre de 2009, 21:11
¿¿pause o system es la funcion que queres usar?
Título: Re: problema char* en linux
Publicado por: Epa en Jueves 5 de Noviembre de 2009, 21:39
es una funcion propia, pero me parecio irrelevante el cuerpo, ya que el problema es cuando se pasa el argumento.
Código: C++
void pause(char*msg)
{
cout<< msg << endl <<"Presione ENTER para continuar.";
fflush(stdin);
cin.get();
}
cuando hago el llamado a funcion como pause("mensaje"); me da un error de conversion de tipo.
se que hay una clase string, pero tendria que crear una variable, insentarle el texto y despues pasarla, o hay otra forma? porque en ese caso se perderia el sentido ya que la unica idea es darle legibilidad y achicar un poco el codigo
gracias
Título: Re: problema char* en linux
Publicado por: Eternal Idol en Viernes 6 de Noviembre de 2009, 10:12
Si pones el output exacto del compilador es mas facil, ahora tratare de compilar algo parecido a lo que dejaste:
Código: C++
#include <stdio.h>
#include <iostream>
usingnamespace std;
void pause(char*msg)
{
cout<< msg << endl <<"Presione ENTER para continuar.";
fflush(stdin);
cin.get();
}
void main()
{
pause("mensaje");
}
No tengo problema, en Windows, tanto con VC++ como con gcc/g++.
PD. fflush no debe usarse con flujos de entrada como stdin, en Google encontraras cientos de referencias al respecto.
Título: Re: problema char* en linux
Publicado por: diego.martinez en Viernes 6 de Noviembre de 2009, 12:25
es posible que en las librerias de linux que estas compilando ya exista una funcion "pause" que reciba como argumento (por ejemplo) un numero de segundos/microsegundos a esperar y te este diciendo que no puede convertir de cadena a numero?
es por sugerir algo simplemente.
Título: Re: problema char* en linux
Publicado por: shakka en Viernes 6 de Noviembre de 2009, 15:28