Autor
|
Tema: #include <conio.h> (linux) (Leído 16,218 veces)
|
maxwellnewage
Desconectado
Mensajes: 245
|
tengo el siguiente programa: #include <stdio.h> #include <conio.h>
int main() { gotoxy( 20, 10 ); printf( "Hola" );
return 0; }
y cuando lo compilo con el gcc aparece esto: hola.c:2:19: error: conio.h: No existe el fichero ó directorio maxwellnewage@maxwellnewage-desktop:~$ gcc hola.c -o hola /tmp/cc4hZdUi.o: In function `main': hola.c:(.text+0x21): undefined reference to `gotoxy' collect2: ld devolvió el estado de salida 1 entiendo, por lo q dice, que falta la biblioteca <conio.h> es propia de windows? como puedo agregarla en linux?
|
|
|
En línea
|
|
|
|
aguml
Desconectado
Mensajes: 378
|
conio es propia de borland y en linux no vale. Para hacer lo mismo que con gotoxy si programas bajo GNU/Linux puedes usar la función move(int fila, int columna), que viene en la librería NCURSES la cual funciona en casi todas las distribuciones.
|
|
|
En línea
|
|
|
|
SeC
Desconectado
Mensajes: 109
@susan.
|
Personalmente nunca he utilizado conio.h, la verdad para darle formato a las impresiones en pantalla solo utilizo \t,\n,... lo que es estandar y compilara aqui y en la quebrá del ají, conio no tiene mayor transcendencia y es mejor no utilizarla (es mi opinión). Lo demas ya te lo explico aguml, lo que te propone es una alternativa, pero yo te recomendaría olvidarte de conio (almenos para eso del gotoxy)...
Un saludo.
|
|
|
En línea
|
Educad a los niños y no sera necesario castigar a los hombres - Pitagoras.
|
|
|
maxwellnewage
Desconectado
Mensajes: 245
|
bueno bueno, me olvido de conio.h en formato solo se usar \n cuales otras hay??
|
|
|
En línea
|
|
|
|
aguml
Desconectado
Mensajes: 378
|
Secuencias de escape
Las secuencias de caracteres en las que el primero es la barra invertida, se denominaron secuencias de escape y aunque originariamente se utilizaron para la representación de los caracteres de control, por extensión pueden representarse de este modo todos los códigos ASCII. Además se dispone de algunos símbolos predefinidos para los caracteres más frecuentes. Por ejemplo, \n se utiliza para representar el carácter nueva línea (decimal 10). Los símbolos utilizados se muestran en la tabla adjunta.
Secuencia Valor Símbolo Que hace
\a 0x07 BEL Sonido audible (bell)
\b 0x08 BS Retroceso (backspace)
\f 0x0C FF Salto de formato (formfeed)
\n 0x0A LF Saltar una línea (linefeed)
\r 0x0D CR Retorno de carro (carriage return)
\t 0x09 HT Tabulación horizontal (H Tab)
\v 0x0B VT Tabulación vertical (V Tab)
\\ 0x5c \ Barra invertida (backslash) [2]
\' 0x27 ' Apóstrofo (comilla simple)
\" 0x22 " Doble comilla
\? 0x3F ? Interrogación
\O cualquiera cualquiera O = cadena de hasta tres dígitos octales
\xH cualquiera cualquiera H = cadena de dígitos hexadecimales
\XH cualquiera cualquiera H = cadena de dígitos hexadecimales
Te aconsejo que te descargues el libro de Programacion en C/C++ de Deitel & Deitel que te aclarará montones de dudas como esta. Esto lo saqué de google pero en el libro viene mejor explicado. Por ejemplo:
Secuencia de escape Descripcion \f (Nueva pagina o avance de pagina) Mueve el cursor al inicio de la siguiente pagina logica.
|
|
« Última modificación: 8 Septiembre 2009, 02:07 am por aguml »
|
En línea
|
|
|
|
EvilGoblin
Desconectado
Mensajes: 2.323
YO NO LA VOTE!
|
Yo quise usar ncurses porque \t me congelaba la aplicacion un tiempo
y me lleve con la agria sorpresa de que no es compatible con printf (osea tiene toda su gama de funciones para imprimir en pantalla) algo por lo cual desisti.. y me dedico a hacer entorno graficos si necesito manejar algo mas complejo que simple imprimir texto
xD
Suerte
|
|
|
En línea
|
Experimental Serial Lain [Linux User]
|
|
|
borja
Desconectado
Mensajes: 1
|
hola buenas noches tengo que entregar esta tarea como royecto en c++ ero el programa no uede compilar y me aarece este error C:\Users\Coni\Desktop\Makefile.win [Build Error] [main.o] Error -1073741819
este es mi royecto:
#include <stdio.h> #include <conio.h>
main () { int op, nu1, nu2,res; float res1; printf ("Elige la operacion que deseas calcular \n"); printf ("1. Suma \n "); printf ("2. Resta \n "); printf ("3. Multiplicacion \n "); printf ("4. Division \n "); printf ("5. Perimetro del circulo \n "); printf ("6. Area del circulo \n "); printf ("7. Perimetro del triangulo \n "); printf ("8. Area del triangulo \n "); printf ("9. Salir \n "); scanf ("%d", &op); switch (op) { case 1: printf("Suma \n"); printf ("introduce el primer numero \n"); scanf ("%d", &nu1); printf ("introduce el segundo numero \n"); scanf ("%d", &nu2); res=nu1+nu2; printf ("la suma de los dos numeros es: %d\n",res);
break; case 2: printf("Resta \n "); printf ("introduce el primer numero \n"); scanf ("%d", &nu1); printf ("introduce el segundo numero \n"); scanf ("%d", &nu2); res=nu1-nu2; printf ("la diferencia de los dos numeros es: %d\n",res); break; case 3: printf("Multiplicacion \n "); printf ("introduce el primer numero \n"); scanf ("%d", &nu1); printf ("introduce el segundo numero \n"); scanf ("%d", &nu2); res=nu1*nu2; printf ("la multiplicacion de los dos numeros es: %d\n",res);
break; case 4: printf("Division \n "); printf ("introduce el primer numero \n"); scanf ("%d", &nu1); printf ("introduce el segundo numero \n"); scanf ("%d", &nu2); res=nu1/nu2; printf ("la division de los dos numeros es: %d\n",res);
break; case 5: printf("Perimetro del circulo \n "); printf ("introduce el radio de la circunferencia \n"); scanf ("%d", &nu2); res1=2*3.1416*nu2; printf ("el perimetro del circulo es: %f\n",res1);
break;
case 6: printf("Area del circulo \n ");
printf ("introduce el radio de la circunferencia \n"); scanf ("%d", &nu2); res1=3.1416*(nu2*nu2); printf ("el area del circulo es: %f\n",res1); break;
case 7: printf("Perimetro del triangulo \n ");
printf ("introduce la base del triangulo \n"); scanf ("%d", &nu1); printf ("introduce la altura del triangulo \n"); scanf ("%d", &nu2); res=nu1+nu2+nu2; printf ("el perimetro del triangulo es: %d\n",res); break;
case 8: printf("Area del triangulo \n ");
printf ("introduce la base del triangulo \n"); scanf ("%d", &nu1); printf ("introduce la altura del triangulo \n"); scanf ("%d", &nu2); res=(nu1*nu2)/2; printf ("la area del triangulo es: %d\n",res); break;
default:printf("Salir"); } getch(); return 0; }
me pudieran ayudar? por favor. Por su atencion muchas gracias
|
|
|
En línea
|
|
|
|
K-YreX
|
hola buenas noches tengo que entregar esta tarea como royecto en c++ ero el programa no uede compilar y me aarece este error C:\Users\Coni\Desktop\Makefile.win [Build Error] [main.o] Error -1073741819
este es mi royecto:
#include <stdio.h> #include <conio.h>
main () { int op, nu1, nu2,res; float res1; printf ("Elige la operacion que deseas calcular \n"); printf ("1. Suma \n "); printf ("2. Resta \n "); printf ("3. Multiplicacion \n "); printf ("4. Division \n "); printf ("5. Perimetro del circulo \n "); printf ("6. Area del circulo \n "); printf ("7. Perimetro del triangulo \n "); printf ("8. Area del triangulo \n "); printf ("9. Salir \n "); scanf ("%d", &op); switch (op) { case 1: printf("Suma \n"); printf ("introduce el primer numero \n"); scanf ("%d", &nu1); printf ("introduce el segundo numero \n"); scanf ("%d", &nu2); res=nu1+nu2; printf ("la suma de los dos numeros es: %d\n",res);
break; case 2: printf("Resta \n "); printf ("introduce el primer numero \n"); scanf ("%d", &nu1); printf ("introduce el segundo numero \n"); scanf ("%d", &nu2); res=nu1-nu2; printf ("la diferencia de los dos numeros es: %d\n",res); break; case 3: printf("Multiplicacion \n "); printf ("introduce el primer numero \n"); scanf ("%d", &nu1); printf ("introduce el segundo numero \n"); scanf ("%d", &nu2); res=nu1*nu2; printf ("la multiplicacion de los dos numeros es: %d\n",res);
break; case 4: printf("Division \n "); printf ("introduce el primer numero \n"); scanf ("%d", &nu1); printf ("introduce el segundo numero \n"); scanf ("%d", &nu2); res=nu1/nu2; printf ("la division de los dos numeros es: %d\n",res);
break; case 5: printf("Perimetro del circulo \n "); printf ("introduce el radio de la circunferencia \n"); scanf ("%d", &nu2); res1=2*3.1416*nu2; printf ("el perimetro del circulo es: %f\n",res1);
break;
case 6: printf("Area del circulo \n ");
printf ("introduce el radio de la circunferencia \n"); scanf ("%d", &nu2); res1=3.1416*(nu2*nu2); printf ("el area del circulo es: %f\n",res1); break;
case 7: printf("Perimetro del triangulo \n ");
printf ("introduce la base del triangulo \n"); scanf ("%d", &nu1); printf ("introduce la altura del triangulo \n"); scanf ("%d", &nu2); res=nu1+nu2+nu2; printf ("el perimetro del triangulo es: %d\n",res); break;
case 8: printf("Area del triangulo \n ");
printf ("introduce la base del triangulo \n"); scanf ("%d", &nu1); printf ("introduce la altura del triangulo \n"); scanf ("%d", &nu2); res=(nu1*nu2)/2; printf ("la area del triangulo es: %d\n",res); break;
default:printf("Salir"); } getch(); return 0; }
me pudieran ayudar? por favor. Por su atencion muchas gracias
Este mensaje no está directamente relacionado con este tema. Lo suyo sería que crearas un tema nuevo para resolver tu problema. Además los trozos de código hay que ponerlos entre etiquetas de código GeSHi (puedes elegirlo encima del cuadro de texto). Además te recomiendo no uses <conio.h>. En tu caso, como alternativa al <getch()> puedes usar <getchar()> (que se encuentra en <stdio.h>) y si programas en C++ puedes usar <cin.get()> (que se encuentra en <iostream>). No controlo mucho los makefile en windows pero tiene pinta de que el error se debe al makefile con el que estás compilando, no al código fuente. Aparte de eso, en el <case> para hacer la división deberías hacer un typecast y usar la variable <res1> por si la división no es exacta: res1 = (float)(n1)/n2;
Y en el <case> del perímetro del triángulo, dudo que esa fórmula sea válida... Que yo recuerde, cuando hacía esos ejercicios en clase, había que usar trigonometría (Pitágoras) para resolver esos ejercicios. Suerte
|
|
|
En línea
|
cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
En el terminal de Linux tienes las secuencias de escape que te permiten posicionar el cursor dónde quieras. Son una simple cadena de texto se lanza con printf, por ejemplo.
|
|
|
En línea
|
|
|
|
|
|