myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

C anfänger warum geht da snicht ? :D

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 24.01.11, 16:28   #1
sobi2
Erfahrener Newbie
 
Registriert seit: Jan 2010
Beiträge: 112
Bedankt: 19
sobi2 ist noch neu hier! | 0 Respekt Punkte
Standard C anfänger warum geht da snicht ? :D

PHP-Code:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main(int argcchar *argv[])
{
  
system("color 0A");
  
char acc[100];
  
char pw[100];
  
printf("Gebe deinen Accountname ein: ");
  
scanf("%s",&acc);
  
fflush(stdin);
  
printf("Gebe deinen Passwort ein: ");
  
scanf("%s",pw); 
  if(
strlen(pw) == 0)
  {        
   
printf("Du hast kein Passwort eingegeben!");            
  }
  else
  {
   
scanf("%s",pw);
   
fflush(stdin);
   
printf("\nAccountname: %s\nPasswort: %s\n",acc,pw);
   
system("PAUSE");    
  } 
  return 
0;

was mache ich falsch, wenn strlen 0 ist wird kein text ausgegeben
sobi2 ist offline   Mit Zitat antworten
Ungelesen 24.01.11, 17:08   #2
Xalir
Erfahrener Newbie
 
Registriert seit: Mar 2009
Beiträge: 154
Bedankt: 56
Xalir ist noch neu hier! | 0 Respekt Punkte
Standard

Code:
scanf("%s",&pw);
Xalir ist offline   Mit Zitat antworten
Ungelesen 24.01.11, 17:35   #3
sobi2
Erfahrener Newbie
 
Registriert seit: Jan 2010
Beiträge: 112
Bedankt: 19
sobi2 ist noch neu hier! | 0 Respekt Punkte
Standard

geht trozdem nicht
sobi2 ist offline   Mit Zitat antworten
Ungelesen 24.01.11, 17:47   #4
Fire.Storm
Erfahrenes Mitglied
 
Benutzerbild von Fire.Storm
 
Registriert seit: Aug 2009
Beiträge: 504
Bedankt: 63
Fire.Storm erschlägt nachts Börsenmakler | 24828 Respekt PunkteFire.Storm erschlägt nachts Börsenmakler | 24828 Respekt PunkteFire.Storm erschlägt nachts Börsenmakler | 24828 Respekt PunkteFire.Storm erschlägt nachts Börsenmakler | 24828 Respekt PunkteFire.Storm erschlägt nachts Börsenmakler | 24828 Respekt PunkteFire.Storm erschlägt nachts Börsenmakler | 24828 Respekt PunkteFire.Storm erschlägt nachts Börsenmakler | 24828 Respekt PunkteFire.Storm erschlägt nachts Börsenmakler | 24828 Respekt PunkteFire.Storm erschlägt nachts Börsenmakler | 24828 Respekt PunkteFire.Storm erschlägt nachts Börsenmakler | 24828 Respekt PunkteFire.Storm erschlägt nachts Börsenmakler | 24828 Respekt Punkte
Standard

Wenn ich das richtig seh, wird das Programm einfach zu schnell beendet, weshalb du den Text nicht lesen kannst.
Bei der else-Verzweigung ist noch ein system("PAUSE") drin, bei der if-Verzweigung nicht.
"else" wird doch richtig angezeigt, oder?
Fire.Storm ist offline   Mit Zitat antworten
Ungelesen 24.01.11, 18:31   #5
sobi2
Erfahrener Newbie
 
Registriert seit: Jan 2010
Beiträge: 112
Bedankt: 19
sobi2 ist noch neu hier! | 0 Respekt Punkte
Standard

ja aber es steht nur nichts da wenn die if abfrage zutrifft
sobi2 ist offline   Mit Zitat antworten
Ungelesen 24.01.11, 19:47   #6
helicon44
Banned
 
Registriert seit: Jun 2010
Beiträge: 87
Bedankt: 72
helicon44 ist noch neu hier! | 0 Respekt Punkte
Standard

Du Prüfst auf die Länge des Strings !!! Da du aber min ein Zeichen eingeben musst wird dein String nie null sein. Habe das mal bissl umgebaut.

Code:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>

int main (int argc, char *argv[])
{
  system ("color 0A");
  char acc [100];
  char pw [100];

  printf ("Gebe deinen Accountname ein: ");
  scanf ("%s",&acc);
  fflush (stdin);

  printf ("Gebe deinen Passwort ein min 3 Zeichen: ");
  scanf ("%s",&pw);


  if (strlen(pw) < 3)
      {
       printf("Dein Passwort is to short!\n");
       system ("PAUSE");
       return 0;
      } else
          {
           printf ("\nAccountname: %s\nPasswort: %s\n",acc,pw);
           system ("PAUSE");
          }
  return 0;
}
helicon44 ist offline   Mit Zitat antworten
Ungelesen 24.01.11, 20:34   #7
sobi2
Erfahrener Newbie
 
Registriert seit: Jan 2010
Beiträge: 112
Bedankt: 19
sobi2 ist noch neu hier! | 0 Respekt Punkte
Standard

Dein Passwort is to short xDDD was denn nun deutsch oder englisch?

naja ein problem habe ich noch wenn ich enter drücke und nix eingebe steht nicht da das es zu kurz ist.
und ich möchte das es so lange fragt bist das pw korekt war
sobi2 ist offline   Mit Zitat antworten
Ungelesen 24.01.11, 20:54   #8
helicon44
Banned
 
Registriert seit: Jun 2010
Beiträge: 87
Bedankt: 72
helicon44 ist noch neu hier! | 0 Respekt Punkte
Standard

Der gebrauch von Goto ist eigentlich ein NoGo !!!!
Aber so geht es eben diesmal in Deutsches Sprache.
Zitat:
wenn ich enter drücke und nix eingebe steht nicht da das es zu kurz ist
Das Programm erwartet eine Eingabe von mind. einem Zeichen egal was, nur Enter drücken geht nicht.
Code:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>

int main (int argc, char *argv[])
{
  system ("color 0A");
  char acc [100];
  char pw [100];

  printf ("Gebe deinen Accountname ein: ");
  scanf ("%s",&acc);
  fflush (stdin);

Point:

  printf ("Gebe deinen Passwort ein min 3 Zeichen: ");
  scanf ("%s",&pw);


  if (strlen(pw) < 3)
      {
       printf("Dein Passwort ist zu kurz!\n\n");
       goto Point;

      } else
          {
           printf ("\nAccountname: %s\nPasswort: %s\n",acc,pw);
           system ("PAUSE");
          }
  return 0;
}
helicon44 ist offline   Mit Zitat antworten
Ungelesen 24.01.11, 21:37   #9
germgerm
bla
 
Registriert seit: Mar 2010
Beiträge: 312
Bedankt: 302
germgerm ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von sobi2 Beitrag anzeigen
was mache ich falsch, wenn strlen 0 ist wird kein text ausgegeben
Der Text würde bei einer Länge Null ausgegeben werden. Soweit kommt es aber nicht, weil scanf() dich erst weiterlässt, wenn tatsächlich etwas eingegeben wurde.

Vergiss das goto schnell, sondern mach lieber eine while-Schleife.
Entweder while(1) mit break.
Oder while(lng < 3) mit init auf Null davor.
Das sind natürlich nur einige Möglichkeiten.
germgerm ist offline   Mit Zitat antworten
Ungelesen 24.01.11, 21:43   #10
helicon44
Banned
 
Registriert seit: Jun 2010
Beiträge: 87
Bedankt: 72
helicon44 ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Vergiss das goto schnell, sondern mach lieber eine while-Schleife.
Entweder while(1) mit break.
Oder while(lng < 3) mit init auf Null davor.
Das sind natürlich nur einige Möglichkeiten.
Stimmt .....

NEUER CODE MIT WHILE SCHLEIFE
helicon44 ist offline   Mit Zitat antworten
Ungelesen 24.01.11, 21:44   #11
germgerm
bla
 
Registriert seit: Mar 2010
Beiträge: 312
Bedankt: 302
germgerm ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von helicon44 Beitrag anzeigen
Stimmt .....
ICH darf goto natürlich verwenden ^^


EDIT: Jetzt musst du noch pw vor der while-Schleife initialisieren: pw[0]=0;
germgerm ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:26 Uhr.


Sitemap

().