Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

12.11.2008, 18:55

Fehler bei printf?

Moinsen. Das hier wird mein erster Beitrag :D
Und gleich starte ich mit einem totalen Anfängerproblem, aber ich würde mich trotzdem freuen wenn mir jemand helfen kann. Also ich habe ich mich mal ein bisschen an einem Socket Tutorial versucht und mein Problem in diesem kurzen code:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <winsock2.h>
#include <windows.h>


//Prototypen (am Ende)


int startWinsock (void);

int main ()
{


    long rc;

    rc=startWinsock();

    if(rc!=0)
    {
        printf("Fehler: startWinsock, fehler code: %d\n",rc);

        return 1;
    }

    else
    {
        printf("Winsock gestartet!\n");
    }


    return 0;
}

int startWinsock(void)
{
    WSADATA wsa;

    return WSAStartup (MAKEWORD(2,0),&wsa);
}


Aber mein Compiler wirft mir meiner Meinung nach ein total sinnfreien Fehler an Kopf:
e:\c++-programmierung\msdev98\myprojects\socket1\sock.cpp(19) : error C2065: 'printf' : nichtdeklarierter Bezeichner

Printf? Wieso deklarieren? Wozu? hab ich was im Code vergessen?

2

12.11.2008, 18:57

Für printf() brauchst du den Header <cstdio>.

printf() ist aber C, in C++ nutzt man für Ausgaben das typsichere std::cout, welches sich im Header <iostream> befindet.

3

12.11.2008, 19:00

jaaa. DANKE
Funktioniert. Ich hab beides gemixt, weil ich hab ein paar Infos aus einem C Tutorial und dann hab ich auch gleich noch bisschen c gelernt. Normalerweise mache ich nur C++. Aber danke für die schnelle Antwort

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

4

12.11.2008, 20:54

Tipp: Wenn du C++ kannst, kannst du auch C ( sag ich jetzt mal so )...
Es ist im Prinzip das Gleiche, nur dass es in C++ noch nen paar kleine Extras gibt

5

12.11.2008, 21:07

Zitat von »"Databyte"«

Tipp: Wenn du C++ kannst, kannst du auch C ( sag ich jetzt mal so )...
Es ist im Prinzip das Gleiche, nur dass es in C++ noch nen paar kleine Extras gibt
Nein, das stimmt absolut nicht.

In C hat man durch fehlende Konzepte wie objektorientierte oder generische Programmierung viel weniger Möglichkeiten. Dann muss man schauen, dass man mit den vorhandenen Mitteln zurecht kommt - was teilweise eine echte Herausforderung sein kann. Und trotzdem kann man mit C Programme schreiben, unter Umständen halt mühsamer.

Und gerade das ist es, was C++-Programmierer normalerweise nicht können. Durch die STL wird einem beispielsweise sehr viel Arbeit abgenommen. Smart Pointer und Container helfen einem, Speicher leicht und übersichtlich zu verwalten. Wenn man in C++ programmiert und sich dann in C versucht, wird man es nicht leicht haben. Deshalb sollten C++-Programmierer auch nicht das Gefühl haben, sie können mehr als C-Programmierer, da C quasi ein Teil von C++ ist. Die Praxis in C sieht dann eben doch anders aus.

Faule Socke

Community-Fossil

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

6

12.11.2008, 21:21

Und wenn du dann x86 Assembler gelernt hast oder OOP in C probiert gleich sich das wieder aus und du kannst als C++ Programmierer genauso denken wie ein C Programmierer. C ist nichts schlimmes, C++ ist aber bequemer. Eine gute Übung ist mit sicherheit, wenn man mal n paar Funktionen aus der C std lib nimmt und die selber schreibt (sollte man recht früh drauf haben, mit memset anfangen ist mit sicherheit gut). Man kann das natürlich auch theoretisch im Kopf machen, wenn man dann das was man im kopf hat einfach schnell hin schreibt und es funktioniert kann man zufrieden sein :D

So ich hab genug senf dazu gegeben, C++ ist bequemer aber auch gleichzeitig anspruchsvoller da man viele neue Regeln Lernen muss, denn OOP bedeutet zwar Macht aber diese Macht muss man auch erstmal kontrollieren können. C und C++ Programmierer haben beide einiges drauf, so viel steht fest, aber heute wird kaum noch einer in reinem C entwickeln, es ist einfach fehleranfälliger wie C++.

Socke

7

13.11.2008, 12:06

nebenbei ... heißt auch std::printf und nich printf wenn de schon C++-Header <cstdio> nutzt ;)
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

8

13.11.2008, 15:42

Danke

Boah danke für die schnellen Antworten. Auch danke für die ganzen Tipps.
Ihr habt es ja voll drauf *Respekt*

Werbeanzeige