Frage von haegarxd, 253

Was mach ich falsch? Ich will was in c++ programmieren aber ich weis nicht weiter?

Antwort
von triopasi, 170

Nach einem IF kommt KEIN Semikolon! Hinter nem ELSE auch nicht. Mach die erstmal weg!

Und setz deine ganzen Klammern mal richtig, kA wo welche Klammer hingehört! Tip: EINRÜCKEN!

Kommentar von haegarxd ,

Aber wenn ich jetzt was richtiges eingebe kommt auch das es falsch ist..

Kommentar von triopasi ,

Zeig deinen Code nochmal. Zb auf pastebin.com posten.

Kommentar von haegarxd ,

#include
using namespace std;

int main(void)
{
int b, Luca;
cout << "Name der Person: ";
cin >> b;

if ( b == Luca){
cout << "Alle informationen zu" << b << endl;}

else if ( b != Luca){
cout << "Person nicht gefunden" << endl;}

cin.sync();
cin.get();
return 0;

Kommentar von MogelHans ,
cout << "Name der Person: "; 
cin >> b; 

b ist ein int, kann also keine zeichenkette enthalten.

Luca hat nie einen wert bekommen.

Kommentar von haegarxd ,

und wie geb ich Luca einen wert?

Kommentar von triopasi ,

Soll das n Standartwert haben oder was? Warum heißt deine Variable Luca? VARIABLEN IMMER SINNVOLL BENENNEN und das ist definitv keine Stilsache! "b" sollte wsl auch "name" heißen und "Luca" ist wohl ne Konstante, oder?

Kommentar von haegarxd ,

Ich will ein Programm erstellen indem ich nach einem namen suchen kann und wenn er verfügbar ist kommen weitere Information dazu. wie mach ich das?

Kommentar von MogelHans ,

wie mach ich das?

indem du erstmal die sprache lernst. du kannst nicht ein projekt schreiben und im nachhinein fragen wie es geht. lerne die sprache und dann weißt du wie man es macht.

Kommentar von regex9 ,

Erst kommt der Algorithmus (1), dann das Coding (3). Da du letzteres auch noch nicht kannst, gibt es den Zwischenschritt 2, "Sprache lernen". 

Alles ohne Schritt 1 ist billiges rumhacken und führt zu 100% zu Bananensoftware. 

Kommentar von MogelHans ,

benutze den zuweisungsoperator?? 

int luca = 12;

ganz ehrlich, schnapp dir ein buch oder so... es hat keinen zweck wenn du nicht mal weißt wie man einer variable einen wert zuweist.

Antwort
von MogelHans, 166

da ist so viel falsch das einem ja die augen bei weh tun.

schnapp dir lieber ein buch und lerne vernünftig die sprache

Kommentar von haegarxd ,

Ja tut mir leid ich hab erst vor einer Woche angefangen...

Kommentar von MogelHans ,

in einer woche sollte man in der lage sein die klammern vernünftig zu setzen, sowie die if abfragen drauf zu haben.

außerdem benutzt man kein 'void', wenn man keine parameter erwartet, zumindest nicht in c++. in c ist das eine andere geschichte.


edit: und gewöhn dir das using namespace std ab.

Kommentar von triopasi ,

"und gewöhn dir das using namespace std ab"

Wieso sollte man?

Kommentar von MogelHans ,

hast anscheinend noch nie mit mehreren bibliotheken gearbeitet, huh?

Kommentar von triopasi ,

Das benutzt der Fragesteller hier aber doch garnicht, dann kann er das doch einfach benutzen (so lang er weiss, was das ganze denn macht). So lang es keine Namensüberschneidungen gibt, funktioniert das ja auch.

Kommentar von MogelHans ,

so lang er weiss, was das ganze denn macht

der war gut. 

wieso sollte man sich einen schlechten stil angewöhnen? das ist totaler quatsch. gerade anfänger sollten die finger davon lassen.

So lang es keine Namensüberschneidungen gibt, funktioniert das ja auch.

richtig, aber lass den fragesteller in naher zukunft eine bibliothek verwenden und schon schreit er voller verzweiflung und fragt sich warum es nicht funktioniert.

genau sowas passiert, wenn man neulingen konstrukte verwenden lässt, die diese nicht verstehen. irgendwann sehen sie das als selbstverstänlich an.

Kommentar von triopasi ,

Referenz lesen. Ob man das using.. benutzt oder nicht wird als "Stilsache" offen gelassen, ist also nicht "verboten" es so zu machen und auch möglich. WENN man weiss was das macht, und das sollte man lernen, dann ises egal. Wenn du das nicht benutzen möchtest, dann lass es halt, Stichwort "Stilsache".

Kommentar von MogelHans ,

stichwort, "bullshit". globale benutzung von using ist SCHLECHTER STIL. lokale bentzung ist eine andere story.

Kommentar von triopasi ,

Das ist dein Stil. Kann sein, dass viele so denken aber gibt auch Leute die's gern anderst machen. Musste wohl mit leben.

Kommentar von haegarxd ,

Sorry wenn ich nicht alles do mach wie sie aber es war einfach nur ne Frage.

Antwort
von procoder42, 99
#include<iostream>

using namespace std;

int main(){
int b,name;

cout << "Name der Person: ";
cin >> b;

if(b == name){
cout << "Alle Informationen zu ..." << endl;
}
else if(b != name){
cout << "Person nicht gefunden" << endl;
}
}

Das ist jetzt mal eine Korrektur der Syntax.

Namen sind normalerweise keine Integer sondern Strings und Name (bzw luca bei dir) wird nie initialisiert.

Kommentar von moin354 ,

1. deine main Funktion hat keinen Rückgabewert, obwohl als Datentyp int angegeben wurde.

2.  du versuchst b mit name zu vergleichen, obwohl name nie initialisiert wird.

3. wie von dir bereits genannt, ist es sinnlos Namen als Integer zu deklarieren.


schon wieder eine Antwort, die deine Unwissenheit bestätigt.

Kommentar von DontHaveAName ,
  1. Vielleicht solltest du dir mal das durchlesen. Punkt 4 ist wichtig. http://en.cppreference.com/w/cpp/language/main_function
  2. Er hat geschrieben das name, bzw luca nie initialisiert wird, wer lesen kann ist klar im Vorteil.
  3. Er hat nur den Code vom Fragesteller leserlicher umstrukturiert

Ziemlich peinlich deine Antwort. Lern du erstmal den C++ Standard und eigne dir die Fähigkeit des Lesens an.

Kommentar von procoder42 ,

1. Wenn kein Rückgabewert angegeben ist, wird auromatisch 0 zurückgegeben. Den ganzen Rest des Codes habe ich sowieso weggelassen, weil eben kein syntaktischer Fehler drin war.

Zu Punkt 2 und 3 :

Lies meine Antwort doch noch mal bitte genau durch !!!

Kommentar von moin354 ,

1. Es ist einfach schlechter Stil keinen Rückgabewert anzugeben

2. & 3. Somit hat er ihm einen noch stets genauso unsinnigen Code übergeben.

Kommentar von DontHaveAName ,

Prinzipiell ist es sinnvoller EXIT_SUCCESS oder EXIT_FAILURE zurück zu geben, ja, macht hier in diesem Beispiel aber keinen Unterschied.

Das Beispiel ist also so gering, das es herzlichst egal ist ob man nun 0, EXIT_SUCCESS, oder eben nichts zurück gibt. Das Ergebnis bleibt ziemlich das gleiche.

2&3. Wieso sollte er ihm denn auch direkt die Lösung vor dem Kopf schmeißen? Daraus lernt er auch nichts. Procoder hat bereits die Fehler angesagt. Den Rest sollte der Fragesteller selbst hinbekommen.

Allgemein machst du dich hier aber ziemlich lächerlich, da du verkrampft versucht Fehler zu finden, nur da du anscheinend einen Groll gegen procoder hast. Gehe zurück in den Kindergarten wo du hingehörst. Ist ja nicht auszuhalten.

Kommentar von ceevee ,

Hoffentlich habt ihr alle beruflich nichts mit Menschen zu tun. Solltet ihr euch da auch in dieser Art und Weise der Kundschaft gegenüber verhalten. Dann richtet bitte eurem Chef mein herzliches Beileid aus euch als Mitarbeiter haben zu müssen! ... Ich kann dir nur raten dich mit deinen miderwertigkeitskomplexen nicht an leute ranzuwagen dies geschafft haben. Dein verhalten wirkt äußerst unreif ... schon wieder eine Antwort, die deine Unwissenheit bestätigt.

Was man sich hier neuerdings bei Programmierfragen für einen Stuss in den Kommentaren anhören darf. Das war früher aber nicht so... ;)

Und warum hat moin354 eigentlich nicht schon längst eine eigene, perfekte Antwort auf diese Frage geschrieben?

Kommentar von procoder42 ,

sinnvoller EXIT_SUCCESS oder EXIT_FAILURE zurück zu geben

Stimmt, bei so einem ganz einfachen Programm kann aber nicht sonderlich viel schief gehen (Ok, eine Zahl außerhalb des Wertebereichs, aber auf solche Fehler wird der Fragesteller nicht testen). Wenn das hier eine Anwendung mit Socket Verbindung wäre, wäre eine Fehlermeldung beim Absturz sicher eine gute Idee.

Somit hat er ihm einen noch stets genauso unsinnigen Code übergeben.

Aber wenn er die o.g. Schlagwörter "String" und "Initialisierung" sucht, wird er das Problem sehr schnell selber lösen können.

nur da du anscheinend einen Groll gegen procoder hast

Naja, ich habe seine Bitte, doch gefälligst keine Antworten mehr zur Softwareentwicklung zu geben, nicht all zu gut aufgenommen. Das klingt wohl hier etwas nach.

Das war früher aber nicht so... ;)

DOCH. Ceevee erinner dich doch mal 1-2 Jahre zurück. So eine Schlammschlacht möchte ich nicht noch mal miterleben ...

Was man sich hier neuerdings bei Programmierfragen für einen Stuss in den Kommentaren anhören darf

Zu moin354s Verteidigung : Das oberste Zitat ist nicht von ihm.

Ich würde mal vorschlagen, dass wir diese ganze Streiterei nun beenden (oder zumindest auf fachliche Ergänzungen begrenzen).

Dem Fragensteller hilft die Diskussion über guten Stil wenig, wenn er erst mal die Basics lernen muss.

Antwort
von Gastnr007, 140

deine Klammern sehen ziemlich russisch aus - guck dir mal nen normales Standartprogramm an

if(a){
   do();
} else if(b){
  cateatsfish=4;
} else {
  hellp();
}

Kommentar von triopasi ,

Ihhhh, Klammern im Stil von Java!!! xD

Kommentar von Gastnr007 ,

was hast du dagegen? ;)

Kommentar von triopasi ,

Find ich halt nicht schön xD Kann aber jeder machen, wie er will xD

Kommentar von gerlochi ,

ich mag das auch nicht, so unübersichtlich, aber jedem selbst überlassen :)

Keine passende Antwort gefunden?

Fragen Sie die Community