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

Phili

unregistriert

1

10.07.2006, 15:22

fopen

Hab mal wieder nen ganz kleines Problem. Weil fstream so schlimm ist^^
will ich auf fopen und so weiter umsteigen. Aber ich hab nochn bissl verständnissprobleme, wie man Textdateien einliest...

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <windows.h>
using namespace std;

int main()
{
    FILE *file;
    fopen_s(&file, "A.txt", "rt");
    int f;
    fread(&f, sizeof(f), 1, file);
    cout<<f;
    system ("PAUSE");
    return 0;
}


so wärs natürlich besonders schön... aber irgendwie kann das ja nicht funktionieren(tut es auch nicht :cry: ). Aber wie mach ich der Funktion klar, dass ich nen int einlesen will? und das die Funktion nicht einfach binär die einzelnen Bytes ausgibt?

2

10.07.2006, 16:00

kommt drauf an wie das da gespeichert ist... wenn de die Binär auslesen willst, muss es rb heißen... und du hast fclose vergessen...
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

Anonymous

unregistriert

3

10.07.2006, 16:03

Er will es normal auslesen und er hat soweit ich weiß die .txt Datei
selber geschrieben...Also hat einfache Zahlen reingeschrieben.

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

4

10.07.2006, 16:15

Wenns ne Text Datei ist als Text lesen mit fgets und dann den erhaltenen string parsen, entweder "manuell" oder mit sscanf oder wenn wirklich nur ein int zu parsen ist atoi.

Wenn Du das machen willst und Dich auf Microsoft beschränkst, schau Dir auch mal die "secure" Funktionen an.
"Games are algorithmic entertainment."

Phili

unregistriert

5

10.07.2006, 16:57

@Osram

Ach wär ich doch bei fstream geblieben... :cry:
Naja, ich schaus mir mal an...

Phili

unregistriert

6

10.07.2006, 17:04

Ah, ja war ja halb so schlimm... :D

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
int main()
{
    FILE *file;
    fopen_s(&file, "A.txt", "rt");
    int Nummer;
    char String[10];
    fgets(String, 10, file);
    Nummer=atoi(String);
    cout<<Nummer;
    fclose(file);
    system ("PAUSE");
    return 0;
}

klappt problemlos. Aber mal ne Frage am Rande, ist das schneller als fstream?(will ich doch hoffen :) )

Phili

unregistriert

7

10.07.2006, 17:19

Danke für die Hilfe, scheint alles zu funktionieren! :D

8

10.07.2006, 17:44

frag mich bloß, wiso du fstream so schlecht findest?
ich mein, fstream is Cpp un fopen etc is ja vollstes C...
okay, wenn de C proggn willst, aber...naja, sieh nich so aus, wenn du cout benutzt.
was findest du also schlechter an fstream als an fopen (etc)

Phili

unregistriert

9

10.07.2006, 17:50

@WarMuuh

Das ich immer <fstream> includen muss gefällt mir garnicht. Außerdem benutzt David in seinem Buch(soweit ich mich erinnere) auch die Funktionen von Windows und nicht die <fstream>-Funktuionen.
Und irgendeinen Grund wird er dafür wohl haben :D :lol:

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

10

10.07.2006, 17:55

du hast es doch schon gesagt warum ... weil er nicht noch fstream includen muss ;)

und zu deiner Fraage ob das nun schneller sein möge.... das kann man schwer sagen den die Zeitkomplexität, orientiert sich hauptsächlich an irgendwelchen Schleifen. Ich glaube auch kaum das das wirklich spürbar langsamer ist ;), an sowas sollte man sich nicht aufhalten.

Werbeanzeige