Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

c++ compiler 5.5.1 - fehler beim compilieren

Empfohlene Antworten

Veröffentlicht

hallo!

ich habe seit gestern plötzlich immer wieder folgende fehler meldung...

Borland C++ 5.5.1 for Win32 Copyright © 1993, 2000 Borland

c:\c++\projects\manu_01.cpp:

Error E2040 c:\Borland\Bcc55\include\_stddef.h 36: Declaration terminated incorrectly

Error E2090 c:\Borland\Bcc55\include\_stddef.h 132: Qualifier 'std' is not a class or namespace name

Error E2272 c:\Borland\Bcc55\include\_stddef.h 132: Identifier expected

Error E2090 c:\Borland\Bcc55\include\_stddef.h 133: Qualifier 'std' is not a class or namespace name

Error E2272 c:\Borland\Bcc55\include\_stddef.h 133: Identifier expected

Error E2090 c:\Borland\Bcc55\include\_stddef.h 134: Qualifier 'std' is not a class or namespace name

Error E2272 c:\Borland\Bcc55\include\_stddef.h 134: Identifier expected

Error E2090 c:\Borland\Bcc55\include\_stddef.h 135: Qualifier 'std' is not a class or namespace name

Error E2272 c:\Borland\Bcc55\include\_stddef.h 135: Identifier expected

Error E2090 c:\Borland\Bcc55\include\rw/stddefs.h 51: Qualifier 'std' is not a class or namespace name

Error E2272 c:\Borland\Bcc55\include\rw/stddefs.h 51: Identifier expected

Error E2090 c:\Borland\Bcc55\include\rw/stddefs.h 52: Qualifier 'std' is not a class or namespace name

Error E2272 c:\Borland\Bcc55\include\rw/stddefs.h 52: Identifier expected

Error E2304 c:\Borland\Bcc55\include\rw/stddefs.h 160: Constant variable 'size_t' must be initialized

Error E2141 c:\Borland\Bcc55\include\rw/stddefs.h 160: Declaration syntax error

Error E2316 c:\Borland\Bcc55\include\mem.h 39: 'size_t' is not a member of 'std'

Error E2188 c:\Borland\Bcc55\include\mem.h 39: Expression syntax

Error E2293 c:\Borland\Bcc55\include\mem.h 39: ) expected

Error E2316 c:\Borland\Bcc55\include\mem.h 40: 'size_t' is not a member of 'std'

Error E2188 c:\Borland\Bcc55\include\mem.h 40: Expression syntax

Error E2293 c:\Borland\Bcc55\include\mem.h 40: ) expected

Error E2316 c:\Borland\Bcc55\include\mem.h 41: 'size_t' is not a member of 'std'

Error E2188 c:\Borland\Bcc55\include\mem.h 41: Expression syntax

Error E2293 c:\Borland\Bcc55\include\mem.h 41: ) expected

Error E2316 c:\Borland\Bcc55\include\mem.h 42: 'size_t' is not a member of 'std'

Error E2228 c:\Borland\Bcc55\include\mem.h 42: Too many error or warning messages

*** 26 errors in Compile ***

und folgendes soll compiliert werden...

#include <conio.h>

#include <iostream.h>

#include <math.h>

void main(void)

{

.

.

.

source-code

.

.

.

}

ich brauche für cin cout die iostream.h

was kann ich da machen???

Originally posted by Drakoon

#include <iostream.h>

Mach daraus bitte mal:

#include <iostream>

using namespace std;

Wenn das nicht hilft, dann ist das mit hoher Wahrscheinlichkeit ein Folgefehler. Vielleicht fehlt nur irgendwo ein Semikolon. Schreib doch bitte mal den Inhalt von manu_01.cpp hier rein

#include <conio.h> // getch();

#include <iostream.h> // cin cout

#include <math.h> //pow(,); wird zwar von math.h zur Verfügung gestellt aber der Borland C++ Compiler 5.5 bringt keinen

//Fehler wenn die math.h nicht in den includes steht...

void main(void)

{

char keybd;

do

{

long int zahl_l,l,long_l,komplement,ergaenzung;

int i,j,anzahl,stelle_i,stelle_j,stelle_i_i,stelle_j_j,tauscher;

clrscr();

cout<<"-32Bit gross ist <long int>, sollte ein groesser Wert bei 'l' eingegeben werden"<<'\n';

cout<<" dann kann das Programm in eine Endlos-Schleife geraten."<<'\n';

// Eingabe mit Überprüfung auf zulässige Eingaben. //

do

{

//// Bei der Zahl 10 ist es PC-Rechentechnisch nicht möglich i mit j zu tauschen ////

cout<<'\n'<<"Geben Sie einen <long int> Wert 'l' zwischen 11 und 9'999'999'999 >32Bit< ein."<<'\n'<<"long int 'l' : ";

cin>>l;

long_l=l;

zahl_l=l;

anzahl=0;

//// Ermittlung der Stellenanzahl ////

do

{

zahl_l=zahl_l/10;

++anzahl;

}

while(zahl_l!=0); //// Ende Ermittlund der Stellenanzahl /////

}

while (l<11);

do

{

cout<<'\n'<<"Stellenwertigkeit von Rechts niedrig (1) nach Links hoch (10).";

cout<<'\n'<<"Geben Sie den <int> Wert 'i' ein (zwischen 1 - "<<anzahl<<")."<<'\n'<<" int 'i' : ";

cin>>i;

}

while ((i<1) || (i>anzahl));

do

{

cout<<'\n'<<"Geben Sie den <int> Wert 'j' ein (darf nicht "<<i<<" sein)."<<'\n'<<" int 'j' : ";

cin>>j;

}

while ((j<1) || (j>anzahl) || (j==i)); // Ende der Eingabe mit Überprüfung auf zulässige Eingabe //

// Ermitteln der Stelle 'i' //

komplement=pow(10,anzahl);

ergaenzung=komplement-l;

stelle_i=ergaenzung/pow(10,i);

stelle_i=stelle_i*pow(10,i);

stelle_i=stelle_i+pow(10,i);

stelle_i=stelle_i+l;

stelle_i=stelle_i-komplement;

stelle_i=stelle_i/pow(10,i-1);

// Ermitteln der Stelle 'j' //

komplement=pow(10,anzahl);

ergaenzung=komplement-l;

stelle_j=ergaenzung/pow(10,j);

stelle_j=stelle_j*pow(10,j);

stelle_j=stelle_j+pow(10,j);

stelle_j=stelle_j+l;

stelle_j=stelle_j-komplement;

stelle_j=stelle_j/pow(10,j-1);

// Subtraktion von stelle 'i' und 'j' //

long_l=long_l-(stelle_i*pow(10,i-1))-(stelle_j*pow(10,j-1));

// Tauschen der Stellen 'i' mit 'j' //

tauscher=stelle_i;

stelle_i=stelle_j;

stelle_j=tauscher;

// Stelle 'i' und 'j' wieder Einfügen //

long_l=long_l+(stelle_i*pow(10,i-1))+(stelle_j*pow(10,j-1));

// Endlich Fertig also alles Anzeigen //

clrscr();

cout<<"<long int> 'l' : "<<l<<" Die Stellen 'i' "<<i<<"="<<stelle_j<<" wurde mit stelle 'j' "<<j<<"="<<stelle_i<<" vertauscht."<<'\n';

cout<<"<long int> 'l' : "<<long_l<<" ist das neue Ergebniss."<<'\n';

cout<<'\n'<<"Soll das Programm wiederholt werden? - Abbruch mit Taste ausser [j/J]"<<'\n';

keybd=getch();

}

while ((keybd=='j') || (keybd=='J'));

}

Originally posted by Klotzkopp

Mach daraus bitte mal:

#include <iostream>

using namespace std;

hmm...

schade hat nix gebracht. kommen immer noch die gleichen fehler.

ich finds nur merkwürdig dass die fehler beim compilieren erst auftreten seit dem ich die kommentare eingefügt habe...

ich compiliere immer so

dos console

c:\borland\bcc55\bin\b.bat manu_01.cpp

hier der inhalt von b.bat

@echo off

c:\borland\bcc55\bin\bcc32.exe +c:\borland\bcc55\bin\bcc32.cfg c:\c++\projects\%1

hier der inhalt von bcc32.cfg

-I"c:\Borland\Bcc55\include"

-L"c:\Borland\Bcc55\lib"

hier der inhalt von ilink32.cfg

-L"c:\Borland\Bcc55\lib"

%1 hier steht der project name in meinem fall also manu_01.cpp

ich weis nich weiter...

hab jetzt alle .obj und .tds gelöscht aber der compiler bringt immer noch die gleichen fehler...

hab auch mal den compiler neuinstalliert aber... keine besserung

ich kann mir nich vorstellen warum es klappt....

edit

wie kann man hier beim posten das syntax highlighting über nehmen oder zumindest die tabs???

gibt es vieleicht ein update für die standard bcc55 includes? ich kann mir nich vorstellen dass mein win2kpro oder mein kleines progrämmchen daran schuld sein soll...

Originally posted by Drakoon

wie kann man hier beim posten das syntax highlighting über nehmen oder zumindest die tabs???

Du kannst die Code-Tags verwenden, damit die Einrückung erhalten bleibt und eine Festbreitenschriftart verwendet wird. Syntaxhighlighting haben wir z.Zt. nur für PHP.

gibt es vieleicht ein update für die standard bcc55 includes? ich kann mir nich vorstellen dass mein win2kpro oder mein kleines progrämmchen daran schuld sein soll...
Ich auch nicht. Wie gesagt, der identische Code, der gleiche Compiler (ohne irgendwelche Updates), und es funktioniert tadellos.

Bist du wirklich ganz sicher, dass das der ganze Code war? Steht nicht vielleicht noch irgendwas vor den #includes?

/***denny*trebbin*********************************

* fisrt date 11/13/2002 first time 7:00pm

* edit date 11/14/2002 last time 01:56pm

* this programm should be change some bits from a integer number

***************************************v0.7.8***/*


#include <conio.h>	// getch();

#include <iostream.h> // cin cout

#include <math.h>	//pow(,);


void main(void)

{

	char keybd;


 do

  {

  	long int zahl_l,l,long_l,komplement,ergaenzung;

  	int i,j,anzahl,stelle_i,stelle_j,stelle_i_i,stelle_j_j,tauscher;


   clrscr();

   cout<<"-32Bit gross ist <long int>, sollte ein groesser Wert bei 'l' eingegeben werden"<<'\n';

   cout<<" dann kann das Programm in eine Endlos-Schleife geraten."<<'\n';


   // Eingabe mit Überprüfung auf zulässige Eingaben. //

   do

    {

    	//// Bei der Zahl 10 ist es PC-Rechentechnisch nicht möglich i mit j zu tauschen ////

    	cout<<'\n'<<"Geben Sie einen <long int> Wert 'l' zwischen 11 und 9'999'999'999 >32Bit< ein."<<'\n'<<"long int 'l' : ";

    	cin>>l;

    	long_l=l;

    	zahl_l=l;

    	anzahl=0;


    	//// Ermittlung der Stellenanzahl ////

    	do

    	 {

    	 	zahl_l=zahl_l/10;

    	 	++anzahl;

    	 }

    	while(zahl_l!=0);	//// Ende Ermittlund der Stellenanzahl /////


    }

   while (l<11);


   do

    {

    	cout<<'\n'<<"Stellenwertigkeit von Rechts niedrig (1) nach Links hoch (10).";

    	cout<<'\n'<<"Geben Sie den <int> Wert 'i' ein (zwischen 1 - "<<anzahl<<")."<<'\n'<<"     int 'i' : ";

    	cin>>i;

    }

   while ((i<1) || (i>anzahl));


   do

    {

    	cout<<'\n'<<"Geben Sie den <int> Wert 'j' ein (darf nicht "<<i<<" sein)."<<'\n'<<"     int 'j' : ";

    	cin>>j;

    }

   while ((j<1) || (j>anzahl) || (j==i));	// Ende der Eingabe mit Überprüfung auf zulässige Eingabe //


   // Ermitteln der Stelle 'i' //

   komplement=pow(10,anzahl);

   ergaenzung=komplement-l;

   stelle_i=ergaenzung/pow(10,i);

   stelle_i=stelle_i*pow(10,i);

   stelle_i=stelle_i+pow(10,i);

   stelle_i=stelle_i+l;

   stelle_i=stelle_i-komplement;

   stelle_i=stelle_i/pow(10,i-1);


   // Ermitteln der Stelle 'j' //

   komplement=pow(10,anzahl);

   ergaenzung=komplement-l;

   stelle_j=ergaenzung/pow(10,j);

   stelle_j=stelle_j*pow(10,j);

   stelle_j=stelle_j+pow(10,j);

   stelle_j=stelle_j+l;

   stelle_j=stelle_j-komplement;

   stelle_j=stelle_j/pow(10,j-1);


   // Subtraktion von stelle 'i' und 'j' //

   long_l=long_l-(stelle_i*pow(10,i-1))-(stelle_j*pow(10,j-1));


   // Tauschen der Stellen 'i' mit 'j' //

   tauscher=stelle_i;

   stelle_i=stelle_j;

   stelle_j=tauscher;


   // Stelle 'i' und 'j' wieder Einfügen //

   long_l=long_l+(stelle_i*pow(10,i-1))+(stelle_j*pow(10,j-1));


   // Endlich Fertig also alles Anzeigen //

   clrscr();

    cout<<"<long int> 'l' : "<<l<<" Die Stellen 'i' "<<i<<"="<<stelle_j<<" wurde mit stelle 'j' "<<j<<"="<<stelle_i<<" vertauscht."<<'\n';

    cout<<"<long int> 'l' : "<<long_l<<" ist das neue Ergebniss."<<'\n';

    cout<<'\n'<<"Soll das Programm wiederholt werden? - Abbruch mit Taste ausser [j/J]"<<'\n';

   keybd=getch();

  }

 while ((keybd=='j') || (keybd=='J'));

}

//// EOF ////

step-by-step

total von vorn

mein bruder studiuert irgendwas in berlin und er hat da nen fach "programmiersprachen" oder so. er hatte mich angefrufen weil sie ein programm schreiben sollen welches von einer long int (l) zahl zwei stellen (i,j) mit ein ander vertauscht. benutz werden sollte die funktion pow(,); die stellen sollen mathematisch berechnet und ausgetauscht werden...

ich fing also an und teste auch gleich immer inkl compilieren ohne fehler. nach dem ich fertig war hab ich angefangen die unbenutzen includes zu entfernen und hab noch die kommentare eingefügt. ab da an brachte der bcc55 diese fehler meldung... wenn ich alle includes wieder einfüge und die kommentare wieder lösche dann funktioniert es leider auch nich mehr... ich hab dann auf arbeit bcc55 installiert und wollte dort compilieren aber auch da gleich der fehler...

ich weis jetzt echt nich mehr weiter.... :(

Originally posted by Drakoon

ich weis jetzt echt nich mehr weiter.... :(

Aber ich! :D :D :D

In der letzten Zeile des einleitenden Kommentars steht nach dem Ende des Kommentars (*/) noch ein *. Der bricht dem Compiler das Genick.

***************************************v0.7.8***/* <-- der muss weg!

DANKE

boa THX echt krass dass ich das übersehn hab... aber warum wird mir dann trotzdem der syntax corecct eingefärbt angezeigt? ich nutze ultraeditv9.2 egal es läuft wieder danke danke danke

edit

jetzt kann ich meine neue berechnung der stellen einfügung und somit auch stellen mit dem zahlen wert 0 korrect tauschen...

hab ich schon danke gesagt??? DANKE

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.