0 votos

Corregir este error.

Hola:

En este código me da error.

using System;

class Program { static void Main() { byte[] dataArray = new byte[1024]; // Tamaño máximo del array de bytes

    Console.WriteLine("Escribe un texto y pulsa Enter:");
    int bytesRead = Console.In.Read(dataArray, 0, dataArray.Length); // Lee los bytes desde la consola y los guarda en el array

    Console.WriteLine("Datos almacenados en el array:");
    for (int i = 0; i < bytesRead; i++)
    {
        Console.Write(dataArray[i] + " ");
    }
    Console.WriteLine();

    Console.WriteLine("Texto almacenado en el array:");
    string text = System.Text.Encoding.Default.GetString(dataArray, 0, bytesRead); // Convierte los bytes a una cadena de texto
    Console.WriteLine(text);
}

}

Concretamente en esta línea:

int bytesRead = Console.In.Read(dataArray, 0, dataArray.Length); // Lee los bytes desde la consola y los guarda en el array.

El error dice: no se puede convertir de 'byte[]' a 'char[]' Almacenar datos en un array tipo byte

¿Se puede corregir?

El código se trata de escribir en el teclado, almacenarlo en un array tipo Array y mostrar esa información guardada en la pantalla.

Gracias y felices fiestas.

1voto

Jimmy Neutron Puntos 520

El error se produce porque Console.In.Read espera un array de tipo char[], no de tipo byte[]. Para corregirlo, debes cambiar el tipo de dato del array dataArray a char[]:

using System;

class Program
{
    static void Main()
    {
        char[] dataArray = new char[1024]; // Tamaño máximo del array de caracteres

        Console.WriteLine("Escribe un texto y pulsa Enter:");
        int bytesRead = Console.In.Read(dataArray, 0, dataArray.Length); // Lee los caracteres desde la consola y los guarda en el array

        Console.WriteLine("Datos almacenados en el array:");
        for (int i = 0; i < bytesRead; i++)
        {
            Console.Write(dataArray[i] + " ");
        }
        Console.WriteLine();

        Console.WriteLine("Texto almacenado en el array:");
        string text = new string(dataArray, 0, bytesRead); // Convierte los caracteres a una cadena de texto
        Console.WriteLine(text);
    }
}

Con esta corrección, el código debería funcionar correctamente. ¡Felices fiestas!

0voto

Meta Conta Puntos 10

Funciona tu método, pero me interesa todo al byte.

Ahora si funciona y muchas gracias.

            // Tamaño máximo del array de bytes.
        byte[] byteArray = new byte[1024]; 

        Console.WriteLine("Escribe un texto y pulsa Enter:");

        // Lee los bytes desde la consola y los guarda en el array.
        int leerBytes = Console.OpenStandardInput().Read(byteArray, 0, byteArray.Length);
        Console.WriteLine();

        Console.WriteLine("Datos almacenados en el array:");
        for (int i = 0; i < leerBytes; i++)
        {
            Console.Write(byteArray[i] + " ");
        }

        Console.WriteLine();
        Console.WriteLine();
        Console.WriteLine("Texto almacenado en el array:");

        // Convierte los bytes a una cadena de texto.
        string texto = Encoding.UTF8.GetString(byteArray, 0, leerBytes); 
        Console.WriteLine(texto);

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X