Преобразуйте входные данные в int C # - PullRequest
0 голосов
/ 24 октября 2018

, поэтому я должен сделать программу, которая останавливается, когда пользователь использует «FIN» в консольном приложении, иначе программа продолжится.Проблема в том, что я не могу преобразовать число, указанное в целое число после.Вот код

[https://pastebin.com/USTia33i]

Алгоритм Cet, идентификация числовых значений для проверки достоверности данных.Выделите все, что вам нужно, чтобы узнать, как работает ABCDEF GH IJKL MNOP, что делает его тип карт, алгоритм преобразования и нумерации документов.

using System;
using static System.Console;
using static System.Convert;
using static System.Math;

namespace Partie_2_Cartes_de_crédit
{
    class Program
    {

        static void Main()
        {
            // Numéro de carte de crédit séparé blocs
            Write("Entrez les 6 premiers chiffres de votre carte (ABCDEF) ou (FIN) pour arreter : ");
            sting abcdef = ReadLine();

            for (; ; )
            {
                /***/
                if (abcdef == "FIN") break;
                /***/
                {

                    // Numéro de carte de crédit séparé blocs         
                    Write("Entrez les 2 chiffres suivants de votre carte (GH) : ");
                    int gh = ToInt32(ReadLine());

                    Write("Entrez les 4 chiffres suivants de votre carte (IJKL) : ");
                    int ijkl = ToInt32(ReadLine());

                    Write("Entrez les 4 chiffres suivants de votre carte (MNOP) : ");
                    int mnop = ToInt32(ReadLine());

                    // Vérification pour une carte American Express
                    if (abcdef / 10000 == 34 || abcdef / 10000 == 37)
                    {
                        int abcde = abcdef / 10;        // Numéro de carte de crédit séparé blocs
                        int fghijk = abcdef % 10 * 100000 + gh * 1000 + ijkl / 10;
                        int lmnop = ijkl % 10 * 10000 + mnop;
                        WriteLine("Le numéro " + abcde + " " + fghijk + " " + lmnop +
                            " indique une carte American Express, à valider en ligne.");
                    }

                    else
                    {
                        // Vérification pour une carte Visa
                        int abcd = abcdef / 100;        // Numéro de carte de crédit séparé blocs
                        int efgh = abcdef % 100 * 100 + gh;

                        if (abcd / 1000 == 4)
                        {
                            WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
                                " indique une carte Visa à valider en ligne.");
                        }
                        // Vérification pour une carte MasterCard
                        else if (abcd / 100 >= 51 && abcd / 100 <= 55)
                        {
                            WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
                                " indique une carte MasterCard à valider en ligne.");
                        }
                        // Vérification pour une carte Sears
                        else if (abcd / 10 == 628 && abcd % 10 != 0 && efgh / 1000 != 0 && efgh / 100 % 10 != 0)
                        {
                            // Formule de Luhn
                            int i = ijkl / 1000;        // Numéro de carte de crédit séparé en chiffre
                            int j = ijkl / 100 % 10;
                            int k = ijkl / 10 % 10;
                            int l = ijkl % 10;

                            int m = mnop / 1000;
                            int n = mnop / 100 % 10;
                            int o = mnop / 10 % 10;
                            int p = mnop % 10;

                            i *= 2;
                            k *= 2;
                            m *= 2;
                            p *= 2;

                            if (i >= 10)
                            {
                                i -= 9;
                            }
                            if (k >= 10)
                            {
                                k -= 9;
                            }
                            if (m >= 10)
                            {
                                m -= 9;
                            }
                            if (p >= 10)
                            {
                                p -= 9;
                            }

                            if (i + j + k + l + m + n + o + p % 10 == 0)
                            {
                                WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
                                    " indique une carte Sears valide.");
                            }
                            else
                            {
                                WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
                                    " indique une carte Sears invalide.");
                            }
                        }
                        // Vérification pour une carte Zellers
                        else if (abcd / 10 == 700)
                        {
                            // Formule de Luhn
                            int i = ijkl / 1000;        // Numéro de carte de crédit séparé en chiffre
                            int j = ijkl / 100 % 10;
                            int k = ijkl / 10 % 10;
                            int l = ijkl % 10;

                            int m = mnop / 1000;
                            int n = mnop / 100 % 10;
                            int o = mnop / 10 % 10;
                            int p = mnop % 10;

                            i *= 2;
                            k *= 2;
                            m *= 2;
                            p *= 2;

                            if (i >= 10)
                            {
                                i -= 9;
                            }
                            if (k >= 10)
                            {
                                k -= 9;
                            }
                            if (m >= 10)
                            {
                                m -= 9;
                            }
                            if (p >= 10)
                            {
                                p -= 9;
                            }

                            if (i + j + k + l + m + n + o + p % 10 == 0)
                            {
                                WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
                                    " indique une carte Zellers valide.");
                            }
                            else
                            {
                                WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
                                    " indique une carte Zellers invalide.");
                            }
                        }
                        else
                        {
                            WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
                                " indique une carte inconne.");
                        }
                    }
                }
            }
        }
    }
} 

1 Ответ

0 голосов
/ 24 октября 2018
Int32.TryParse 

возвращает вам bool и заполняет переменную, проверьте bool, чтобы увидеть, действительно ли это int.

https://docs.microsoft.com/en-us/dotnet/api/system.int32.tryparse?view=netframework-4.7.2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...