Programación General > C/C++
problema char* en linux
Epa:
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
Eternal Idol:
¿¿pause o system es la funcion que queres usar?
Epa:
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
Eternal Idol:
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> using namespace 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.
diego.martinez:
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.
Navegación
[#] Página Siguiente
Ir a la versión completa