Cyber Monday

ATÉ 40% OFF

TÁ ACABANDO!

0 dias

0 horas

0 min

0 seg

1
resposta

[Dúvida] Console.Read não seria melhor?

Estou com uma dúvida, na hora de declarar a variavel (para receber o input) eu a defini como string, e por acaso eu sem querer usei a função "Console.Read()". O codigo deu erro e me disse que é porque essa função retorna um valor int. Eu poderia declarar a variável "int" e usar essa função para não precisar converter?

1 resposta

Olá Vinicius.
Tudo bem?
A função Console.Read() no C# realmente retorna um valor do tipo int.
Isso ocorre porque ela lê um único caractere e retorna seu valor numérico (código ASCII) correspondente.
Por exemplo, se você digitar "A" no console, Console.Read() irá retornar o valor 65, que é o código ASCII da letra "A".
Para ler uma string do usuário, você deveria usar Console.ReadLine(), que retorna um valor do tipo string.
Se o seu objetivo é receber um número inteiro como entrada, você pode fazer a conversão após ler a linha com Console.ReadLine().
Exemplo 1: Usando Console.ReadLine() para ler uma string

Console.WriteLine("Digite um número inteiro:");
string input = Console.ReadLine(); // Lê como string
int numero = int.Parse(input); // Converte a string para int
Console.WriteLine("Você digitou o número: " + numero);

Se você quiser usar Console.Read() para ler um único caractere e quiser convertê-lo para int, poderia fazer assim:

Console.WriteLine("Digite um número inteiro:");
char inputChar = (char)Console.Read(); // Lê um único caractere
int numero = inputChar - '0'; // Converte o caractere para seu valor numérico
Console.WriteLine("Você digitou o número: " + numero);

Nesse caso, a conversão inputChar - '0' é usada para transformar o caractere numérico ('0' a '9') no valor inteiro correspondente (0 a 9).
Qualquer duvida comente ai.
Bons estudos.