C++ Die Datei "Quelle" kann nicht geöffnet werden string.h?

Beispiel - (Computer, C (Programmiersprache), Visual Studio 2017)

2 Antworten

Du hast da ein globales "using namespace std;", und das sogar noch VOR den System-Headern.

Außerdem solltest du ...

#include <cstring>

... schreiben, wenn es sich um C++ handelt.

Und dann nutzt du nicht die Funktion strcpy() sondern strcpy_s() die eine völlig andere Signatur hat. Siehe dazu:

http://en.cppreference.com/w/c/string/byte/strcpy

Eine Funktion strcpy_s() mit nur zwei Parametern gibt es nicht. Deshalb kann die auch nicht gefunden werden.

VOR deinen Includes ganz am Anfang solltest du aber noch ein Makro __STDC_WANT_LIB_EXT1__ definieren, da die Funktion strcpy_s eine optionale Erweiterung ist, die in vielen Compilern standardmäßig nicht enthalten ist. Das geht so:

#define __STDC_WANT_LIB_EXT1__ 1

Allerdings kannst du zu Übungszwecken auch einfach die gute alte Standard strcpy() nutzen ... das ist für den Einstieg vielleicht verständlicher.

Und zu guter letzt musst du deinen Compiler so einstellen, dass er für die "Secure-Variante" strcpy_s() mindestens C++11 kompatiblen Code kompiliert, falls das noch nicht geschehen ist.

Ich weiß, das ist zu viel auf einen Haufen, aber du überstürzt da etwas! Lerne langsamer! Man merkt bei den vielen Fehlern, dass dir Grundlagen fehlen und du vermutlich keine guten Lehrmittel nutzt.

Nimm dir Zeit und hetze nicht durch dein Buch / Tutorial / wasauchimmer, denn Verständnis ist wichtig; vor allem am Anfang!

An deiner Stelle würde ich deinen obigen Quelltext komplett aufgeben, und noch mal in aller Ruhe ganz locker Stück für Stück anfangen.

Viel Erfolg! :)
eneskalali 
Fragesteller
 03.12.2017, 15:26

vielen dank erstmal.. ich bin Mechatronik Student ich hab einfach bloß gelernt dass ich das so machen soll :D an den Hochschulpcs funktioniert es ja so, aber auf meinem Surface tablet leider nicht.

du schreibst irgendwas von Compiler einstellen.. wie mach ich das genau? leider kann ich nur etwas programmieren aber von der Programmier Umgebung hab ich nicht so viel Ahnung vorallem wenn es um sowas wie Bibliotheken etc geht.

0

Mal ins Blaue geraten #include <cstring> statt #include <string.h>

eneskalali 
Fragesteller
 03.12.2017, 14:39

erkennt dann aber strcpy nicht..

0
eneskalali 
Fragesteller
 03.12.2017, 14:50
@KuarThePirat

tut er leider nicht..

#include <cstring>

class CBuch

{

public:

CBuch(char *zTitel, unsigned long int hilfsSignatur) //Konstruktor

{

strcpy(titel, zTitel); 

so hab ich es eingegeben aber strcpy wird trotzdem rot unterkringelt

0