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

vab

Frischling

  • »vab« ist der Autor dieses Themas

Beiträge: 18

Wohnort: Hamburg

Beruf: Kfz-Meister

  • Private Nachricht senden

1

16.09.2014, 14:29

Daten aus Text-Datei einlesen; Probleme mit fopen, fopen_s

Hallo zusammen,

habe mir neu *Microsoft Visual Studio Professional 2013 zugelegt und nun laufen meine alten Programme
nicht mehr richtig. Mit der Version von 2008 läuft alles prima.

mein Problem,
.......
FILE * pfile;
if ((pfile = fopen("Resolutions.txt", "r")) == NULL)
Game_Shutdown();

fscanf(pfile, "%s", stringBuffer);
fscanf(pfile, "%s", stringBuffer);
fscanf(pfile, "%s", stringBuffer);
.......

ergibt Fehler Meldung:
error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

********************************
.......
FILE * pfile;
if ((pfile = fopen_s("Resolutions.txt", "r")) == NULL)
Game_Shutdown();

fscanf(pfile, "%s", stringBuffer);
fscanf(pfile, "%s", stringBuffer);
fscanf(pfile, "%s", stringBuffer);
.......

ergibt Fehler Meldung:
error C2660: 'fopen_s': Funktion akzeptiert keine 2 Argumente


wo ist mein Fehler (Denkfehler) und wie kann ich das beheben?

Danke im voraus.

Thoran

Alter Hase

Beiträge: 520

Wohnort: Stuttgart

Beruf: Senior Software Engineer

  • Private Nachricht senden

2

16.09.2014, 15:10

http://msdn.microsoft.com/de-de/library/z5hh6ee9.aspx

Verwende 3 Parameter statt 2. pfile wird als Parameter übergeben und nicht als Rückgabewert zugewiesen.
Alternativ setze _CRT_SECURE_NO_WARNINGS als Compiler flag.
Mein Entwicklertagebuch
Aktuelles Projekt: Universum Espionage
Eingestellt:Spieleengine SilverCore
Organisator "Spieleentwickler Stammtisch Stuttgart"

birdfreeyahoo

Alter Hase

Beiträge: 756

Wohnort: Schorndorf

Beruf: Junior Software Engineer

  • Private Nachricht senden

3

16.09.2014, 15:19

pFile dann aber mit & übergeben (&pFile)

PS: Viel Spaß noch mit dem Buch, ich fand es echt schwer.

Fireball

Alter Hase

Beiträge: 415

Wohnort: Werne

Beruf: Dipl. Inf.

  • Private Nachricht senden

4

16.09.2014, 15:56

Hab ich von Stackoverflow.

C-/C++-Quelltext

1
2
3
4
FILE *fp_config;
const char *configfile ;
configfile = "bot.conf";
fopen_s( &fp_config, configfile, "r" )


:search: Immer als erstes in der Doku nachsehen.

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

5

16.09.2014, 16:22

Besser ist es in dem Fall sogar, die Warnung zu deaktivieren oder ggf. "_CRT_SECURE_NO_WARNINGS" zu definieren(Kein Compilerflag!).
Die "s"-Variante ist nämlich Microsoft-spezifisch und nicht im Standard. Außerdem verbessern sie den Code in den meisten Fällen nicht.

birdfreeyahoo

Alter Hase

Beiträge: 756

Wohnort: Schorndorf

Beruf: Junior Software Engineer

  • Private Nachricht senden

6

16.09.2014, 20:20

Die "s"-Variante ist nämlich Microsoft-spezifisch


Ist an dieser Stelle aber irrelevant.

Werbeanzeige