2009-08-31 32 views
26

Estoy desarrollando una aplicación muy simple en mi Mac usando QtCreator.Entrada de consola con Qt Creator

Es una aplicación de consola y quiero que el usuario ingrese su nombre, y luego mostrar su nombre. Aquí está el código:

#include <iostream> 

int main(int ArgC, char* ArgV[]) 
{ 
    char Name[1000]; 

    std::cout << "Type your name : "; 
    std::cin >> Name; 

    std::cout << "Hello " << Name << "\n"; 
    return 0; 
} 

Cuando se ejecuta esta aplicación con QtCreator, la cadena "Escriba su nombre:" se muestra en la pestaña 'Salida de la aplicación'. Pero si escribo un texto y presiono la tecla Enter, no ocurre nada.

¿Qué pasa?

Respuesta

23

Encontré una solución. Con Qt Creator 1.3.0 (en Mac OS X), esto es lo que tenía que hacer:

  • Proyecto-> Configuración de carrera, marque "Ejecutar en la Terminal" (gracias Ropez)
  • Qt Creador-> Preferencias: Environnement: General: Terminal: tuve que poner todo el camino a XTerm. Para mi configuración, tuve que poner /usr/x11/bin/xterm -e.

¡Ahora todo funciona bien!

+1

En mi versión de QTcreator (3.6.0), la pestaña "Proyecto" es una pestaña vertical llamada "Proyectos" (con "s"). Puedes encontrarlo en la izquierda de la ventana principal de ide. En cuanto a las Preferencias y la ruta del terminal, se encuentra en "Herramientas> Opciones> Entorno (pestaña vertical)> Sistema (pestaña Horizontal)" –

7

Vaya a Proyecto -> Ejecutar configuración, y asegúrese de que la opción "Ejecutar en el terminal" esté marcada.

Por cierto:

std::cin >> Name; 

probablemente no es lo que quiere. Leerá solo un token (típicamente solo el primer nombre). Debería echarle un vistazo al getline, o al string version.

+0

Gracias por la respuesta. Revisé la casilla de verificación 'Ejecutar en la Terminal', pero ahora tengo este problema al ejecutar mi aplicación: No se puede iniciar el emulador de terminal 'xterm'. ¿Alguna idea? –

+0

OK, nunca he usado Qt Creator en Mac, solo Linux. 'xterm' es el nombre del emulador de terminal predeterminado en Linux. Probablemente necesites cambiarlo a "terminal" o algo así. De nuevo, no estoy familiarizado con Mac. Lo encontrará en Herramientas -> Opciones -> Medio ambiente. – Ropez

+0

FYI, recibí el mismo error "No se puede iniciar el emulador de terminal 'xterm'". En mi máquina Fedora 15 tuve que hacer un "sudo yum install xterm". Ahora cuando ejecuta su código, qtcreator puede abrir un xterm y tener éxito. –

2

Jeromes es la solución adecuada. Aunque puedo darte una alternativa diferente. En caso de que no quiera usar X11 (por alguna razón, de todos modos) en la misma posición (QtCreator-> Preferences-> Environment: General: Terminal) puede dar su ruta a la aplicación Terminal de esta manera: /Applications/Utilities /Terminal.app/Contents/MacOS/Terminal

¡Disfrútalo!

+1

En Qt Creator 2.6.x esta solución crea no menos de 3 ventanas de terminal y no emergente sobre otras ventanas, por lo que debe hacer clic en el icono Dock para ver los contenidos. –

2

Solución para Windows.

En el archivo de complemento .pro:

QT -= core gui 
TEMPLATE = app 
CONFIG += console 

Ir al proyecto -> Configuración de carrera, y asegúrese de que "Ejecutar en un terminal" está marcada.

1

Para Qt 2.4.0 basado en Mac, haga clic en la pestaña vertical Proyecto, que se encuentra debajo de "Depurar" en la misma línea vertical que Bienvenida, Edición, Diseño. En Target-> Run, asegúrese de que esté marcado "Run in terminal".

1

tuve la "No se puede iniciar el emulador de terminal xterm '" problema en Mac y fija yendo a configuración, Medio Ambiente y haciendo clic en el "Restablecer" botón junto a la Terminal campo de texto.

Por alguna razón, por defecto se acaba de decir "xterm -e" pero después del reinicio se convirtió en una ruta absoluta de "/usr/X11/bin/xterm -e".

La aplicación de mi consola funcionó bien.

Cuestiones relacionadas