Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Meta en 28 Marzo 2020, 19:46 pm



Título: Redimensionar y quitar tildes o otro carecter que no viene a cuento
Publicado por: Meta en 28 Marzo 2020, 19:46 pm
Hola:

Paso 1.

Quiero quitar caracter raros hasta en el título cuando uso tildes.

Antes usaba el #include "pch.h". Ya no se como añadirlo. Hace dos años que no uso el C++ de Visual Studio Community 2019.
Código
  1. #include <iostream>
  2.  
  3. #include <windows.h> // Para mostrar texto en el título de la ventana.
  4.  
  5.  
  6.  
  7. using namespace std;
  8.  
  9. using std::cout;
  10.  
  11.  
  12.  
  13. int main(void)
  14.  
  15. {
  16.  
  17.  
  18.  
  19. SetConsoleTitle(TEXT("Título de la ventana. Win32 C++ 2019."));
  20.  
  21.  
  22.  
  23. cout << "Terminarías. Conocerías. Título. Analógico. \n";
  24.  
  25. cout << "Muchas gracias mi muy distinguido amigo.";
  26.  
  27.  
  28.  
  29. cin.get();
  30.  
  31. return 0;
  32.  
  33. }

Paso 2.

¿Cómo redimensionar la ventana?

Por ejemplo, en C# se usa esto.
Código
  1.           // Tamaño ventana consola.
  2.  
  3.            // X anchura.
  4.  
  5.            Console.WindowWidth = 20;
  6.  
  7.  
  8.  
  9.            // Y altura.
  10.  
  11.            Console.WindowHeight = 5;

Más fácil aún y en una sola línea es:

Código
  1. Console.SetWindowSize(20, 5);

¿Cómo se hace en C++?

Gracias.


Título: Re: Redimensionar y quitar tildes o otro carecter que no viene a cuento
Publicado por: **Aincrad** en 28 Marzo 2020, 22:43 pm
Tus preguntas son Respecto a C++ no?, entonces estas en la sección equivocada.  :silbar:


Título: Re: Redimensionar y quitar tildes o otro carecter que no viene a cuento
Publicado por: Meta en 28 Marzo 2020, 23:36 pm
Tienes razón, me equivoqué. Espero que un moderador lo corrija.
 Gracias.


Título: Re: Redimensionar y quitar tildes o otro carecter que no viene a cuento
Publicado por: EdePC en 29 Marzo 2020, 04:27 am
Saludos,

- No comprendo bien eso de quitar tildes, te refieres a cambiar las vocales acentuadas por sus equivalentes sin acentuar? si es así debería de bastar un bucle  que recorra cada letra, verifique y haga el cambio.

- Con respecto a redimencionar la ventana de la consola, pues si estás utilizando Visual C++ CLR puedes usar sintaxis .NET:

Código
  1. #include "stdafx.h" //Este archivo solo contiene la línea: #pragma once
  2.  
  3. using namespace System;
  4.  
  5. int main(array<System::String ^> ^args) {
  6.  Console::SetWindowSize(20, 5);
  7.  Console::Title = "Título de la ventana. Win32 C++ 2019";
  8.  Console::WriteLine("Terminarías. Conocerías. Título. Analógico");
  9.  Console::WriteLine("Muchas gracias mi muy distinguido amigo.");
  10.  Console::ReadLine();
  11. }
  12.  


Título: Re: Redimensionar y quitar tildes o otro carecter que no viene a cuento
Publicado por: Meta en 29 Marzo 2020, 12:34 pm
Hola:

No, me refireo, hablando de C++. Que al poner tilder, sale caracteres raros en pantalla. Si pones tilder, por ejemplo, í, sale otra cosa al compilar el programa de C++ Win32.

Ejemplo esta captura.
(https://www.subeimagenes.com/img/cap-2110719.gif)

Saludos.


Título: Re: Redimensionar y quitar tildes o otro carecter que no viene a cuento
Publicado por: Serapis en 29 Marzo 2020, 16:07 pm
Basta que cambies la fuente que utiliza la consola... por una que admita los caracteres tildados. Es decir verifica primero que fuente estás usando.


Título: Re: Redimensionar y quitar tildes o otro carecter que no viene a cuento
Publicado por: Meta en 29 Marzo 2020, 18:27 pm
Gracias.

Ya lo he hecho. Dejo el ejemplo aquí por si alguien lo necesita, aunque hayan pasado 20 años, jajajaja. O poco le faltan.

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

Saludos.