Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » immer 265/257

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
18.07.2003, 22:30 Uhr
~rammellaus
Gast



C++:
#pragma hdrstop
#pragma argsused
#include <iostream.h>
int main()
{   char ende;
    int a, b, c=a+b;
    cin >> a;
    cin >> b;
    cout << "c: " << c;
    cin >> ende;
    return 0;
}


--------------------------------------------------------------
habe mich mal vom buch gelöst und was eigenes versucht... aber irgendwie gibt der immer nur 257 aus, bzw wenn ich + durch * ersetzte, 256!
warum? is der int wert bereich falsch? iegentlich dich net.....

ps: hoffe es is diesmal das richtige forum und muss net wieder verschoben werden ^^

-- Edit: cpp-Tags eingefügt.

Dieser Post wurde am 19.07.2003 um 18:39 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
18.07.2003, 23:00 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


es macht nicht viel sinn wenn du die werte addierst bevor du sie eingelesen hast.
Sonst stehen da irgend welche initialwerte drin.
Was du vermutlich meinst ist das hier

C++:
#include <iostream>
using namespace std;
int main(){
char ende;
int a, b, c
     cin >> a;
     cin >> b;
     c=a+b;
     cout << "c: " << c;
     cin >> ende;
return 0;
}



Gruss Heiko
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
19.07.2003, 00:00 Uhr
Pablo
Supertux
(Operator)


C/C++ unterscheidet sich von Java in der Initialisierung ihrer Variablen. Dein Fehler hier, ist dass du c zuerst zuweist und dann liest du die Werte die gelesen werde müssen, genauso wie Heiko schon sagte.

In Java werden alle Variablen (ints#, doubles, usw. mit 0 initialisiert, wenn man nichts bei der Deklaration zuweist) und alle Objete mit null oder mit dem Standard Konstruktor, da bin ich mir nicht sicher. C und C++ initialisieren mit einem beliebigen Wert (ich glaube, der Wert ist beliebig). Also haben a und b beliebige Werte und deshalb bekommt man nicht das gewünschte Ergebnis.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.07.2003, 00:26 Uhr
0xdeadbeef
Gott
(Operator)


In Java läuft vieles von dem, was der Compiler macht, über die Laufzeitanalyse. Wenn eine Variable vor der ersten sicheren Wertzuweisung nicht ausgelesen wird, wird sie zunächst nicht initialisiert, ansonsten wird zunächst ein Standardwert - bei Basistypen 0, bei Objekten der Standardkonstruktor - zugewiesen.
C++ geht da ein bisschen anders vor - C++ führt bei Objekten den Standardkonstruktor aus, bei Basistypen findet keine Zuweisung statt, d.h. der Wert der Variable ist direkt nach der Deklaration undefiniert. Wenn du ein uninitialisiertes Register erwischt und die richtige Maschine hast, kann es dir passieren, dass der Inhalt 0xdeadbeef ist (das gilt natürlich nur für Variablen, die der Compiler in einem Register anfordert).
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
19.07.2003, 09:27 Uhr
~rammellaus
Gast


achso.... danke euch!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
19.07.2003, 09:36 Uhr
~rammellaus
Gast


jetzt hab ich es so gemacht:

C++:
#pragma hdrstop
#pragma argsused
#include <iostream.h>
int main()
{
int a, b, c;
char ende;
cin >> a;
cout << "\n\n" ;
cin >> b;
c=a+b
cout << "c: \n ";
cout << c;

cin >> ende;

        return 0;
}


---------------------
aber nicht zum ersten mal markiert er mir ne cout zeile und sagt:
[C++ Fehler] Unit1.cpp(12): E2379 In Anweisung fehlt ;

wenn ich diese zeile dann lösche markiert er einfach ne andere......

Dieser Post wurde am 19.07.2003 um 10:27 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
19.07.2003, 10:31 Uhr
Pablo
Supertux
(Operator)


komisch, ich bin entweder blind oder blöd geworden, aber ich finde keine Fehler in den cout Zeilen. Was heißt (das ist Borland C++, oder?) E2379 in Anweisung fehlt? Was bedeutet das?

Warte, ich hab schon gemerkt. Wenn dieser Code, genauso wie er da ist, ist der, der compiliert wurde, dann ist es logisch, dass der Fehler auftritt, denn du hast das Semikolon ; in der zeile c = a+b. Es muss so sein:


C++:
c=a+b[b];[/b]
cout << "c: \n ";
cout << c;


--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 19.07.2003 um 10:32 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
19.07.2003, 10:40 Uhr
~rammellaus
Gast


oh jetzt gehts...... thx
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
19.07.2003, 13:04 Uhr
~rammellaus
Gast


boah ich geh kaputt:

C++:
#pragma hdrstop
#pragma argsused
#include <iostream.h>

int main(int argc, char* argv[]) {
    int e1, e2, e3, ka=0;
    char ende;

    cout << "2*5+6 ist gleich?: \n"
    cin >> e1;
    if (e1==2*5+6){
        ++ka;
    }
    cout << "und 3*5*2+45*7 ?: \n"
    cin >> e2;
    if (e2==3*5*2+45*7) {
        ++ka;
    }
    cout << "2+4+7*6*2+7/5=?: \n"
    cin >> e3;
    if (e3==2+4+7*6*2+7/5) {
        ++ka;
    }
    if (ka==3) {
        cout << "Krass! Ganze " << ka << "Punkte!";

    else    cout << "Naja...immerhin " << ka << "Punkte..." ;
    }
    cin >> ende;
    return 0;
}


-------------
ersteinmal meint er bei jeder cin anweisung [C++ Fehler] Unit1.cpp(10): E2379 In Anweisung fehlt ;
zweitens meint er else sei falsch positioniert...... aber is doch eigentlich richtig,oda?

-- Edit: Code-Tags eingefügt, und Code leserlich eingerückt.

Dieser Post wurde am 19.07.2003 um 13:14 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
19.07.2003, 13:15 Uhr
0xdeadbeef
Gott
(Operator)


Gut, nachdem ich das Ding jetzt für dich formatiert habe: Das else muss nach der } stehen, und auch nach den Zeilen

C++:
    cout << "2*5+6 ist gleich?: \n"


usw. muss ein Semikolon stehen. Danach müsste das laufen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: