wie kann ich einzelne .cpp und .h zum fertigen Programm zusammenfrickeln?



  • Weil es so vorgegeben wird 😉



  • Franky666 schrieb:

    Weil es so vorgegeben wird 😉

    das ist aber käse!



  • ist das nicht egal? Entscheidend ist das, was da drinne is.



  • Franky666 schrieb:

    ist das nicht egal? Entscheidend ist das, was da drinne is.

    nein. Weil viele IDEs Dateien mit Endung .cpp automatsich als C++ betrachten und durch den C++ Compiler jagen. C != C++

    außerdem

    using namespace System;     // Zugriff auf den Namensbereich "System" -> Console
    ....
     #define clrscr()      Console::Clear()
      #define gotoxy(x,y)   Console::SetCursorPosition((x-1),(y-1))
      #define wherex()      (Console::CursorLeft+1)
      #define wherey()      (Console::CursorTop+1)
    

    ist definitiv kein C sondern C++

    igit, wer schreibt denn so eine schreckliche Mischung aus Äpfel und Kartofeln? Wo hast du das her?



  • Das ist auch kein C++, sondern C++/CLI.

    Wie dem auch sei, der Fehler liegt in der vsconio.h - clreol wird darin nicht nur deklariert, sondern auch definiert, so dass der Header nur in einer Übersetzungseinheit eingebunden werden kann. Wer hat das Ding eigentlich geschrieben? Ist ja fürchterlich.

    Die einfachste Lösung (wenn das in C++/CLI von C++ her nicht verändert wurde) wird sein, den Header wie folgt umzuschreiben:

    using namespace System;
    
    #include <stdio.h>
    
    #ifndef _VS_conio_h_
    #define _VS_conio_h_
    
      #define clrscr()      Console::Clear()
      #define gotoxy(x,y)   Console::SetCursorPosition((x-1),(y-1))
      #define wherex()      (Console::CursorLeft+1)
      #define wherey()      (Console::CursorTop+1)
    
      inline /* <-- HIER */ void clreol(int xe = 79) {
        int xr, xa = wherex();
        for( xr = xa; xr <= xe; xr++ ) printf(" ");
        gotoxy(xa, wherey());
      }
    
    #endif
    

    Mittelfristig würde ich mich aber an deiner Stelle nach einer sinnvolleren Quelle von Übungsaufgaben umsehen.



  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum ANSI C in das Forum C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Eigentlich hab ich die vsconio.h der Vollständigkeit halber hier gepostet, damit keiner fragt "was ist das für ein include?". Gut das ich das gemacht hab.

    Die inlude-Datei ist wahrlich von unserem Professor (irgendwie von Pascal nach C portiert, weils in C das nicht gibt) und ich hab sie unverändert reingesetzt. Ich hab sie mir eigentlich gar nicht so genau angeguckt, weil ich eh nur clrscr() davon brauche. Aber da suche ich mir lieber ner Alternative und nehme das Incluce raus 🙄 .....

    Bin auch nicht auf die Idee gekommen, dort nach dem Fehler zu suchen. Aber jetzt sehen ich das selber...

    Danke. 🙂

    Man kann doch sicher irgendwie ganz einfach ohne diese vsconio.h die Konsole löschen, oder?

    Scheinbar bekommen wir c und c++ wirklich gemischt beigepult. dann ist es ja vielleicht besser, die cpp-dateien so zu lassen. 😞



  • Mies!

    system("cls");
    

    Funktioniert nur auf Windows und ich weiß nicht was dein Prof. dazu sagt. Ich denke, die STL bietet da eine bessere Lösung.

    Gruß



  • theliquidwave schrieb:

    Funktioniert nur auf Windows und ich weiß nicht was dein Prof. dazu sagt. Ich denke, die STL bietet da eine bessere Lösung.

    Nicht dass ich wüßte. Aber das gehört in eine Funktion ausgelagert, die entsprechend cls oder clear benutzt.



  • theliquidwave schrieb:

    Ich denke, die STL bietet da eine bessere Lösung.

    Mit Sicherheit nicht. Erstens, die STL (= Container, Iteratoren, Algorithmen) sowieso nicht. Zweitens, die Standardbibliothek ansonsten auch nicht.


Anmelden zum Antworten