Test Foro de elhacker.net SMF 2.1

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 (cpp) [Seleccionar]
#include <iostream>

#include <windows.h> // Para mostrar texto en el título de la ventana.



using namespace std;

using std::cout;



int main(void)

{



SetConsoleTitle(TEXT("Título de la ventana. Win32 C++ 2019."));



cout << "Terminarías. Conocerías. Título. Analógico. \n";

cout << "Muchas gracias mi muy distinguido amigo.";



cin.get();

return 0;

}


Paso 2.

¿Cómo redimensionar la ventana?

Por ejemplo, en C# se usa esto.
Código (csharp) [Seleccionar]
          // Tamaño ventana consola.

           // X anchura.

           Console.WindowWidth = 20;



           // Y altura.

           Console.WindowHeight = 5;


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

Código (csharp) [Seleccionar]
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 (cpp) [Seleccionar]
#include "stdafx.h" //Este archivo solo contiene la línea: #pragma once

using namespace System;

int main(array<System::String ^> ^args) {
  Console::SetWindowSize(20, 5);
  Console::Title = "Título de la ventana. Win32 C++ 2019";
  Console::WriteLine("Terminarías. Conocerías. Título. Analógico");
  Console::WriteLine("Muchas gracias mi muy distinguido amigo.");
  Console::ReadLine();
}
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 (cpp) [Seleccionar]
#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.
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 };
SetConsoleWindowInfo(GetStdHandle(STD_OUTPUT_HANDLE), TRUE, &r);

// 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;
}


Saludos.