Dev - C++ - Escribir con acentos

 
Vista:

Escribir con acentos

Publicado por luisla (1 intervención) el 07/03/2006 16:35:13
Me he instalado Dev-C++, en castellano. Al escribir en pantalla con printf() no me aprecen las letras acentuadas, ni otros simbolos como interrogaciones ,etc
¿Como puedo configurar DEV para solucionar este problema? Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Escribir con acentos

Publicado por Carlos (14 intervenciones) el 28/04/2006 02:40:17
Eso no es posible... y no tiene nada que ver con el Dev-C++

Lo que pasa es que al traducirse el programa al codigo máquina el compilador no reconoce algunos caracteres, porque son especiales y no pertenecen al idioma inglés...

Entonces si escribes la Ñ o cualquier letra acentuada no saldrá bien...

Yo tengo una solución y es una conbinacion de codigos ascii que permite que se puedan sacar en la pantalla los caracteres especiales...

Si respondes a este e-mail te las mando...

Por ejemplo para escribir la ñ
haz lo siguiente

escribe la instruccion printf() normalmente y ubicate en el lugar de la cadena donde deseas escribir el caracter especial y presiona ALT y sin soltarla escribe en el teclado de los numero de la derecha el numero 15 y al soltarla te aparecera el siguiente simbolo ☼ compila y ejecuta y verás que saldra la ñ.

si quieres las combinaciones para los acentos me avisas... bye
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Escribir con acentos

Publicado por Horacio (1 intervención) el 27/03/2011 21:15:04
Gracias...mil....Buen Truquini
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Escribir con acentos

Publicado por Edgardo garcia (1 intervención) el 21/05/2008 00:43:57
amigo buenas tardes, me gustaria saber si tienes una tabla con todos esos caracteres especiales que no lee el DEV.. estoy haciendo un programa y necesito dibujar y los cararteres no me los reconoce por ejemplo: 188,187,201 y 200 necesito esos caracterres y todos los que me puedas enviar gracias y espero tu respuesta....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Escribir con acentos

Publicado por adrian (1 intervención) el 30/09/2009 00:14:33
porfa si puedes mandarme una lista con todos los caracteres y codigos para ejecutarlos que no salen en el compilador dev c++
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Escribir con acentos

Publicado por josua (1 intervención) el 06/05/2010 18:31:13
Hola me llamo Josua y me gustaria saber como se escribe acentos en dev c muchas gracias. Espero tu respuesta pronto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Escribir con acentos

Publicado por Joan Pau (1 intervención) el 07/08/2010 09:39:09
Hola, me llamo Joan Pau y agradecería mucho tu ayuda si me mandaras la tabla para escribir esos caracteres.
Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Escribir con acentos

Publicado por Alejandro Caro (1 intervención) el 19/04/2012 15:37:35
C y C++ son lenguajes americanos, por lo tanto están pensados para mostrar y/o ingresar texto en inglés, y este carece de acentos, de signo de apertura de exclamación o de interrogación, letras acentuadas, por esa razón a todos esos caracteres con esta característica los toma como símbolos, el compilador de C y C++ los ve como símbolos. Eso ocurre también con demás caracteres y letras en otros idiomas distintos al inglés, como letras con circunflejo, con cedilla, o con cualquier símbolo fonético sobre una letra o debajo de esta que no pertenezca al alfabeto inglés.

Para colocar tildes y demás letras con algún tipo de acentuación en el texto que se quiere mostrar en tiempo de ejecución se debe hacer lo siguiente:

En C se debe definir un identificador de variables del tipo carácter y colocar al final el código ASCII de dicho carácter:

Ej.:

printf("Hay un %crbol, que mat%c a un colibr%c.",160,162,161);

Donde %c es el identificador de variable y 160 el código ASCII del símbolo á

Otros símbolos:

á –> printf("%c",160);
é –> printf("%c",130);
í –> printf("%c",161);
ó –> printf("%c",162);
ú –> printf("%c",163);

Nota: Para que esto funcione debemos poner return 0; antes de la última llave.

En C++ además de la anterior tenemos la opción de usar esta fórmula:

\xnn

donde \ en este caso es el carácter que le indica a C++ que vamos a colocar una expresión de llamado, x de hexadecimal y nn es el número en hexadecimal del carácter ASCII correspondiente a dicho símbolo.

Ej.:

Buscamos en código ASCII correspondiente al símbolo "ú" que es 163. Luego, ese código lo convertimos a hexadecimal que sería a3 y lo ponemos sustituyendo en la fórmula al nn y nos queda \xa3. Esto le ordena a C que llame al código ASCII en hexadecimal y cargue el símbolo en tiempo de ejecución.
Esto lo colocamos sustituyendo el símbolo por su correspondiente en la palabra que contenga el símbolo
Ej.: en tiempo de diseño queda así: n\xa3mero
Compilamos y en tiempo de ejecución nos queda "número"

Conflictos de carácter:

Pueden existir conflictos de carácter, cuando el compilador interpreta la siguiente letra de la palabra como parte del código hexadecimal y muestra la siguente advertencia en el mensaje de construcción: warning: hex escape sequence out of range(advertencia: secuencia hex [hexadecimal] fuera de rango).

Ese error se puede solventar realizando dos printf donde en el primero se deja la palabra a medias (cai-->ca\xA1) y el siguiente se iniciaría con el resto de la palabra(a) sin utilizar un \n.
Ej.: printf("No existen ra\xA1");
printf("ces reales");

Otra forma de escribir lo mismo sería:
printf("No existen ra\xA1") && printf("ces reales");
concatenamos una cadena de texto con el llamado al símbolo con la otra cadena de texto con los caracteres && que es un y lógico para que se muestren concatenados ambas cadenas de texto en el tiempo de ejecución.

Nota: El archivo donde hacemos esto debe tener la extensión .cpp o pertenecer a C++ y se debe declarar la librería iostream (#include )

Si queremos implementar esto último en C debemos hacer los mismo, la única diferencia es que hay que poner la expresión \xnn entre comillas:

printf("Ingrese un n""\xa3""mero: ");

De esta forma se evitan los conflictos de carácter que ocurren en c++

Colocar tildes en ambos lenguajes (C y C++):

Existen ciertos símbolos que el compilador de C y C++ los interpreta como letras acentuadas o con chiu:

á –> printf(""); //(no conozco símbolo ascii que devuelva una á)
é –> printf(""); //( no conozco símbolo ascii que devuelva una é)
í –> printf("¡"); //escribir signo de apertura de exclamación
ó –> printf("¢"); //El símbolo ¢ se despliega en pantalla escribiendo alt+189
ú –> printf("£"); //El símbolo £ se despliega en pantalla escribiendo alt+156
ñ -> printf("¤"); //El símbolo ¤ se despliega en pantalla escribiendo alt+207
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Escribir con acentos

Publicado por andres (1 intervención) el 01/10/2013 05:26:45
me interesa saber como poner acentuación en programación si me puedes ayudar te lo agradecería
gracias espero respuesta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Escribir con acentos

Publicado por Giovanny Diaz (1 intervención) el 20/03/2014 15:35:13
Pa necesito saber el codigo para sacar "tildes" en C++

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Escribir con acentos

Publicado por Alex (1 intervención) el 18/11/2015 16:05:39
me haces el favor y envíarme los correos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Escribir con acentos

Publicado por katherine (1 intervención) el 17/06/2017 20:19:12
hola me gustaria saber que simbolo utilizar o que cimbinacion de caracteres utilizar para que saga la Ñ mayuscula ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Escribir con acentos

Publicado por eric damian (1 intervención) el 10/11/2017 09:03:38
me interesa me podrias pasar las conbinaciones porfa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Escribir con acentos

Publicado por Ariel Giomi (1 intervención) el 18/03/2014 21:56:33
Lo más práctico es utilizar locale.h

1
2
3
4
5
6
7
8
#include <stdio.h>
#include <locale.h>
 
int main(){
	setlocale(LC_CTYPE, "Spanish");
	printf("árbol");
	return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Escribir con acentos

Publicado por Daniel (1 intervención) el 30/04/2014 17:47:58
Esta es la mejor manera, sin complicarte, lo que no se es, si funciona en cualquier función que aparezca antes del main y antes de este setlocale
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Sergio X.
Val: 2
Ha disminuido su posición en 7 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Escribir con acentos

Publicado por Sergio X. (1 intervención) el 07/03/2015 10:20:35
He creado una pequeña librería, accstring.h, con la que puedes imprimir los caracteres escribibles (con un teclado) y algunos otros símbolos, acentos agudos, graves, circunflejos y diéresis, signos de entonación como abrir interrogación, exclamación, también la ce cedilla Ç, la ñ y otros símbolos especiales. Así puedes escribir desde dentro del programa en C, frases en español o francés. Está registrada por copyright pero es plenamente freeware.

http://sourceforge.net/projects/accstringhextendedcharsinc/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Escribir con acentos

Publicado por Jaume (1 intervención) el 06/02/2016 20:40:24
Perfecto, va genial.
gracias por la aportación.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Escribir con acentos

Publicado por Bruno (1 intervención) el 09/07/2015 18:22:00
Ariel Giomi, muchas gracias, eres grande ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Escribir con acentos

Publicado por Roberto (2 intervenciones) el 09/02/2017 01:50:15
Años buscando el porque... Infinito agradecimiento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Escribir con acentos

Publicado por Roberto (2 intervenciones) el 09/02/2017 01:51:37
Años buscando el porque... Infinito agradecimiento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Escribir con acentos

Publicado por Eduardo (1 intervención) el 09/02/2018 01:34:47
Bravo!!! Esta es la mejor respuesta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

a mí esto me funciona en devc++

Publicado por joserra (1 intervención) el 23/02/2021 14:28:22
1
2
3
4
5
6
7
8
9
10
11
12
13
/* plocale01.c */
 
#include<stdio.h>
#include<locale.h>
#include<string.h>
 
int main(){
	setlocale(LC_ALL, "");
	char cadena[]="guión";
	printf("\nCadena %s\n",cadena);
	system("pause");
return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Escribir con acentos

Publicado por Alejandro Caro (4 intervenciones) el 03/09/2017 15:47:59
C y C++ son lenguajes americanos, por lo tanto están pensados para mostrar y/o ingresar texto en inglés, y este normalmente carece de acentos, y no posee signo de apertura de exclamación o de interrogación, por esa razón a todos esos caracteres con esta característica los toma como símbolos, el compilador de C y C++ los ve como símbolos. Eso ocurre también con demás caracteres y letras en otros idiomas distintos al inglés, como letras con circunflejo, con cedilla, o con cualquier símbolo fonético sobre una letra o debajo de esta que no pertenezca al alfabeto inglés ya que por defecto estos están configurados para escribir texto en dicho idioma.
Este hecho provoca el problema de que cuando queremos colocar, por ejemplo, la u con tilde para que en tiempo de ejecución se muestre, por ejemplo, la palabra "número", pero cuando ejecutamos por pantalla nos queda "n·mero", palabra con falta.
En C
Para colocar tildes y demás letras con algún tipo de acentuación en el texto que se quiere mostrar en tiempo de ejecución se debe hacer uno de los siguientes pasos:
Una de las formas de colocar tildes y demás acentos es utilizar un identificador de variables del tipo carácter y colocar al final el código ASCII de dicho carácter:
Ej.:
Código:
1
printf("Hay un %crbol, que mat%c a un colibr%c.",160,162,161);
Donde %c es el identificador de variable, en este caso c de carácter, y 160 que es el código ASCII del símbolo á
Otros símbolos:
á:
Código:
1
printf("%c",160);
é:
Código:
1
printf("%c",130);
í:
Código:
1
printf("%c",161);
ó:
Código:
1
printf("%c",162);
ú
Código:
1
printf("%c",163);
ñ:
Código:
1
printf("%c",164);
°
Código:
1
printf("%c",248);
¿:
Código:
1
printf("%c",168);

En C/C++
Otra forma que tenemos para colocar tiles es la siguiente:
Usamos la siguiente fórmula:
\xnn
donde \ en este caso es el carácter que le indica a C/C++ que vamos a colocar una expresión de llamado, x de hexadecimal y nn es el número en hexadecimal del carácter ASCII correspondiente a dicho símbolo.
Ej.:
Buscamos en código ASCII correspondiente al símbolo "ú" que es 163. Luego, ese código lo convertimos a
hexadecimal que sería a3 y lo ponemos sustituyendo en la fórmula al nn y nos queda \xa3. Esto le ordena a C que llame al código ASCII en hexadecimal y cargue el símbolo en tiempo de ejecución.
Esto lo colocamos sustituyendo el símbolo por su correspondiente en la palabra que contenga el símbolo Ej.: en tiempo de diseño queda así: n\xa3mero
Compilamos y en tiempo de ejecución nos queda "número"
Otros símbolos:
á:
Código:
1
printf("\xA0");
é:
Código:
1
printf("\x82");
í:
Código:
1
printf("\xA1");
ó:
Código:
1
printf("\xA2");
ú
Código:
1
printf("\xA3");
ñ:
Código:
1
printf("\xA4");
º:
Código:
1
printf("\xFB");
¿:
Código:
1
printf ("\xAB");
Conflictos de carácter:
Pueden existir conflictos de carácter, cuando el compilador interpreta la siguiente letra de la palabra como parte del código hexadecimal, esa secuencia no se corresponde con ningún símbolo ascii, y el compilador de C o C++ no entiende a que símbolo queremos llamar, por eso muestra la siguiente advertencia en el mensaje de construcción: warning: hex escape sequence out of range (advertencia: secuencia hex [hexadecimal] fuera de rango).
Este error se puede solventar realizando dos printf donde en el primero se deja la palabra a medias (ra\xA1) y el siguiente se iniciaría con el resto de la(s) palabra(s) sin utilizar un \n.
Ej.:
Código:
1
printf("No existen ra\xA1");
Código:
1
printf("ces reales");
otra forma de escribir lo mismo sería:
Código:
1
printf("No existe ra\xA1"), printf("ces reales");
Concatenamos una cadena de texto con el llamado al símbolo con la otra cadena de texto con el carácter, que es un y de concatenación para que se muestren concatenados ambas cadenas de texto en el tiempo de ejecución.
Otra forma de corregir este error es poner la expresión \xnn entre comillas dobles:
Código:
1
printf("No existen ""ra\xA1""ces reales");
De estas dos formas se evitan los posibles conflictos de carácter que ocurren en C y C++
También existen ciertos símbolos que el compilador de C y C++ los interpreta como letras acentuadas o con chiu:
á:
Código:
1
printf(" "); //(nbsp -espacio sin separación-, este espacio especial se despliega en pantalla escribiendo alt+255)
é:
Código:
1
printf(""); //(no conozco símbolo ascii que devuelva una é)
í:
Código:
1
printf("¡"); //escribir signo de apertura de exclamación
ó:
Código:
1
printf("¢"); //El símbolo ¢ se despliega en pantalla escribiendo alt+189
ú:
Código:
1
printf("£"); //El símbolo £ se despliega en pantalla escribiendo alt+156
Código:
1
printf("¤"); //El símbolo o se despliega en pantalla escribiendo alt+207
Símbolo de grado: º:
Código:
1
printf ("§");//El símbolo § se despliega en pantalla escribiendo alt+0167
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Escribir con acentos

Publicado por Luisla (1 intervención) el 03/05/2019 20:57:44
Usa Ascii
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Escribir con acentos los que te dan es de c esto es de c++

Publicado por Daniel (1 intervención) el 14/06/2020 20:04:20
//á –> \xA0; é –> \x82; í –> \xA1; ó –> \xA2; ú –> \xA3; ñ –> \xA4; Ñ –> \xA5;
//á -> 160; é -> 130; í -> 161; ó -> 162; ú -> 163; ñ -> 164;

Por ejemplo: Canci\xA2n ---> Canción
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 111
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Escribir con acentos

Publicado por Meta (45 intervenciones) el 16/06/2020 10:13:23
Hola:

Al menos en Visual Studio Community 2019 (gratuito) funciona muy bien.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <windows.h> // Para mostrar texto en el título de la ventana.
 
using namespace std;
//using std::cout;
//using std::cin;
 
int main(void)
{
	// Mostrar caracteres correctamente en pantalla y título de la ventana.
	SetConsoleOutputCP(65001);
	wchar_t titulo[128];
	MultiByteToWideChar(CP_UTF8, 0, "Título de la ventana. Win32 C++ 2019.", -1, titulo, 128);
	SetConsoleTitle(titulo);
 
	// Tamaño de la pantalla. Se cambia en los dos últimos dígitos.
	SMALL_RECT r = { 0, 0, 49, 9 }; // X = 49, Y = 9.
	SetConsoleWindowInfo(GetStdHandle(STD_OUTPUT_HANDLE), TRUE, &r);
 
	// Ocultar cursor.
	CONSOLE_CURSOR_INFO cci;
	GetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cci);
	cci.bVisible = 0; // 0 oculta. 1 muestra cursor.
	SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cci);
 
	// Mostrar textos en pantalla.
	cout << "Terminarías. Conocerías. Título. Analógico. \n";
	cout << "Muchas gracias mi muy distinguido amigo.";
 
	// Esperando pulsar Enter para salir.
	cin.get();
	return 0;
}

Ya me dirás.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar