Ankündigung

Einklappen
Keine Ankündigung bisher.

User helfen User - Programmieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Ich habe in C++ eine Routine geschrieben, die deine Pinanforderung entsprechen sollte:

    http://pastebin.com/P7EiZfcP

    Kommentar


      Dir kann es doch egal sein, ob der User jetzt Zahlen eingegeben hat oder nicht. Entweder ist die Eingabe gleich dem Pin oder er ist es eben nicht. Also reicht doch ein Vergleich zweier Strings...

      @casio_O: Nimm doch einfach STL Strings, dann geht das mit dem Trimmen einfacher.

      Kommentar


        Zitat von casio_O
        Ich habe in C++ eine Routine geschrieben, die deine Pinanforderung entsprechen sollte:

        http://pastebin.com/P7EiZfcP
        Was macht dein trim alles genau? Nur die Leerzeichen entfernen?

        Kommentar


          vorne und hinten leerzeichen entfernen

          Kommentar


            Ja, vorne und hinten.

            Kommentar


              Warum so kompliziert und net einfach find_first_not_of(" ") und find_last_not_of(" ")?

              VB.Net und C# bieten da wenigstens direkt von Haus aus Trim() ;D

              Kommentar


                Ich bin kein C Programierer ^^. Ka was da so üblich ist =)

                Kommentar


                  Zitat von casio_O
                  Ich bin kein C Programierer ^^. Ka was da so üblich ist =)
                  Ich auch net, daher hab ich geschaut ob es da keinen trim Befehl gibt und die beiden netten Funktionen entdeckt ;)

                  str.erase(0,str.find_first_not_of(" ")); //führende Leerzeichen entfernen
                  str.erase(str.find_last_not_of(" ")+1); //Leerzeichen am Ende entfernen

                  Kommentar


                    Mein C Compiler ist uralt :D

                    Hab hier kein stl, wenn er nicht mal bool kann ohne was dafür zu machen xD

                    Kommentar


                      lol, okay ;D

                      Kommentar


                        Das erklärt einiges ;-)

                        Kommentar


                          Könnte man die Abfrage auch so machen?

                          So wird geprüft ob es 4 stellen sind:
                          (cpin.size() == 4)

                          So wird geprüft ob in jeder Stelle eine Zahl:
                          ((isdigit(cpin[0]) == false) || (isdigit(cpin[1]) == false) || (isdigit(cpin[2]) == false) || (isdigit(cpin[3]) == false))


                          Es funktioniert auf jeden Fall.. hab mir das jetzt unabhängig von euren Lösungen zusammen gebaut, da ich einfach noch nicht so weit bin :)

                          edit: http://pastebin.com/bqFREfr3

                          Kommentar


                            Ja, geht natürlich auch. Eine Schleife ist aber eleganter mMn ;)

                            Kommentar


                              Kann man so machen, ja. Das ist ja ungefähr die Lösung von DerKilla.

                              Du kannst das auch so schreiben:

                              if( !isdigit(cpin[0]) || ... )

                              Kommentar


                                ich muss mich mit der for schleife von DerKiLLa erstmal noch ausführlicher beschäftigen. Hab bis jetzt nur mit do while schleifen gearbeitet und steig da auf die schnelle im Moment nicht hinter.

                                Dort wird eine Variable i = 0 definiert, diese wird auf i < 4 überprüft, weil ich 4 Zeichen des Strings überprüfen möchte? die variable i wird dann in jedem Durchlauf +1 gerechnet so das vom String die stelle 0-4 geprüft wird? ist das richtig?

                                Dann kann ich ja eigentlich besser:

                                if (cpin.Length == 4)
                                {
                                for (int i = 0; i < 3; i++)
                                {
                                if (Char.IsDigit(cpin[i]) == false)
                                ierror = 1;
                                }

                                schreiben oder? Es muss ja die Stelle 0-3 vom String überprüft werden.

                                edit: habs ausprobiert, muss also tatsächlich eine 4 drin stehen... hmm..

                                Kommentar

                                Lädt...
                                X