Hola,
Alguien sabe como hacer un printf o scanf, es decir, una entrada o salida de texto sin usar el stdio.h ni ninguna otra libreria? He probado el write pero no hace nada.
Gracias.
Para eso tenes que usar servicios externos si o si (como la API de Windows o la BIOS por ejemplo) o acceder al hardware si escribis tu propio S.O..
Ejemplo elemental:
DWORD written = 0;
WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), "HOLA", 4, &written, 0);
Yo creo que no hay manera. "La Consola" no está entre las definiciones del lenguaje, hay flujos de entrada y de salida, pero Consola no. Siempre tendrás que usar alguna librería, del C o del C++.
write está en <unistd.h> para C, o la ostream::write del C++ en <ostream>
No podrás escapar.
Pense en puts, pero mire mis apuntes y es de la libreria <stdio.h>
puts( "texto" );
Creo que lo que intentas no es posible.
No lo se porque no lo he probado, pero juraria que todas las funciones basicas forman parte de alguna libreria. :rolleyes:
La respuesta correcta es la primera.
Citar
La respuesta correcta es la primera.
De acuerdo, siempre que no olvides
#include <windows.h>
Cita de: Loretz en 12 Julio 2020, 00:51 AMDe acuerdo, siempre que no olvides
#include <windows.h>
Cita de: Loretz en 8 Junio 2020, 15:12 PMSiempre tendrás que usar alguna librería, del C o del C++.
No olvido nada,
esa no es una libreria de C/C++ y estrictamente hablando puedo declarar lo necesario manualmente (incluso podria usar syscall o la interrupcion correspondiente y el mismo principio aplica a la BIOS; de ser necesario podria enlazar el resultado de ensamblar un modulo .asm para x64).
Esto es simplemente una tosca demostracion:
typedef unsigned int DWORD;
extern "C" DWORD __stdcall WriteFile(DWORD, void *, DWORD, DWORD *, DWORD);
extern "C" DWORD __stdcall GetStdHandle(DWORD);
#define STD_OUTPUT_HANDLE (DWORD) -11