Jump to content

C#-> Problema ao reiniciar menu (switch,case)


Recommended Posts

Posted

Olá, bem preciso da vossa ajuda.

Como está no título, eu estou a ter um problema quando os menus (switch,case) em que, quando abro o programa aparece lá os números que quero escolher, pressionar e que aconteca o que eu pedi.

Mas depois de escolher (a primeira vez) carrego em enter, reinicia e aparece a seleção de novo mas não consigo digitar o número que quero (fica parado)

Bem, no programa diz que o erro está em -> s1 = Convert.ToInt16(value: Console.ReadLine()); (erro: http://prntscr.com/jwfjy5, http://prntscr.com/jwfl3p

Gostava muito que me ajudassem, para ajudar um pouco mais a entender vou deixar o código todo:

Código:

using System;
using System.IO;
using System.Net;
using System.Text;
using Newtonsoft;
using Newtonsoft.Json;

namespace ConsoleApp2
{
    class Program
    {

        static void Main(string[] args) => BacktoMenu();

        private static void BacktoMenu()
        {

        
        //todo aquele código que eu falei na resposta do topico aqui




        Console.WriteLine("----------------------------------------------");
            Console.WriteLine("|ILHA DO CLUB PENGUIN 0.0.1 ALPHA |");
            Console.WriteLine("----------------------------------------------");

            Console.WriteLine();

            //Menu
            Console.WriteLine("Escolhe a opção:\n" +
                "\n1.- Versão dos arquivos" +
                "\n2.- Analisar arquivos" +
                "\n5.- Sair" +
                "\n10.-Limpar Tudo");

            int s1 = 0;
            s1 = Convert.ToInt16(value: Console.ReadLine());

            switch (s1)
            {
                case 1:
                    Console.WriteLine("Versão dos arquivos:");
                    string Url;
                    string GetResponse;
                    Console.WriteLine();
                    Console.WriteLine("----------------------------------------------------------------------------------------------------------------------------------------------");
                    Console.WriteLine();
                    string URL = "COLOCAR LINK AQUI";
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
                    request.ContentType = "application/json; charset=utf-8";
                    HttpWebResponse response = request.GetResponse() as HttpWebResponse;
                    using (Stream responseStream = response.GetResponseStream())
                    {
                        StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);
                        Console.WriteLine(reader.ReadToEnd());
                    }
                    Console.WriteLine();
                    Console.WriteLine("----------------------------------------------------------------------------------------------------------------------------------------------");
                    Console.Read();

                    BacktoMenu();

                    break;


                case 5:
                    Console.WriteLine("Sair");
                    Console.ReadKey();
                    BacktoMenu();
                    break;

                case 2:
                    Console.WriteLine("Em desenvolvimento");
                    Console.Read();
                    BacktoMenu();
                    break;


                case 10:
                    Console.WriteLine("Em desenvolvimento");
                    Console.ReadKey();
                    break;

                default:
                    Console.WriteLine("A opção que selecionaste não existe!");
                    BacktoMenu();
                    break;

            }
            BacktoMenu();
            Console.WriteLine("");
            //versão
            Console.WriteLine("----------------------------------------------------------------------------------------------------------------------------------------------");


        }


    }
}
Posted (edited)

a única coisa que se pode dizer é interpretar o erro fornecido.

o que o erro diz é que a string inserida não é convertível para um número, isto quer dizer que não é formada por 

Quote

value does not consist of an optional sign followed by a sequence of digits (0 through 9).

https://msdn.microsoft.com/en-us/library/basyfs27(v=vs.110).aspx

Edited by HappyHippyHippo
IRC : sim, é algo que ainda existe >> #p@p
Posted

olá minileandro!

não sei se já resolveu teu problema, portanto analisei teu código e acho que o problema é em criar uma variável int32 e atribuir ela valor do tipo int16 envês de:

int s1 = 0;

s1 = Convert.ToInt16(value: Console.ReadLine());

use isto:

int s1 = 0;

s1 = Int.Parse(value = Console.ReadLine());

ou  s1 = Convert.ToInt32(value: Console.ReadLine());

abraço.

  • 2 weeks later...
Posted
Em 25/06/2018 às 12:54, Timóteo nkawa disse:

olá minileandro!

não sei se já resolveu teu problema, portanto analisei teu código e acho que o problema é em criar uma variável int32 e atribuir ela valor do tipo int16 envês de:

int s1 = 0;

s1 = Convert.ToInt16(value: Console.ReadLine());

use isto:

int s1 = 0;

s1 = Int.Parse(value = Console.ReadLine());

ou  s1 = Convert.ToInt32(value: Console.ReadLine());

abraço.

Olá, obrigado pela ajuda, ajudou mesmo bastante, ainda não tinha resolvido pois fiquei sem PC durante algumas semanas. 😉

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.