"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

C++ Frage (mal wieder)

Lactobacillus 09.03.2001 - 17:49 783 13
Posts

Lactobacillus

Addicted
Registered: Sep 2000
Location: gone
Posts: 389
Hallo,

ich brauche für ein Programm (eine Win32 Konsolenanwendung) Dateizugriff. Z.Z. kann ich eine Datei anlegen/öffnen/schließen, aber etwas in die Datei zu schreiben habe ich noch nicht zusammengebracht :(
Ich müsste sowohl binäre Daten in eine Datei schreiben als auch Text (in eine andere)...

wie der Quellcode jetzt aussieht (ich verwende MS VS 6.0)
Zitat
#include <stdio.h>
#include <iostream.h>

#include <io.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

void main ()
{
int file;

file = open ("Test.txt", _O_WRONLY | _O_CREAT, _S_IREAD | _S_IWRITE);
if (file == -1)
{
cout<<"Fehler beim Zugriff auf die Datei"<<endl;
}
else
{
//etwas in die Datei schreiben
close (file);
}
}

Danke!
Lactobacillus
PS: Ich bin gerade draufgekommen, dass das mein 250. Post war :)

[ 09 March 2001: Message edited by: Lactobacillus ]

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Hat's irgendeinen speziellen Grund, dass du diese low level-Funktionen verwendest? Wenn doch, was ich bezweifle, schau dir halt die Dokumentation an. Findest ganz leicht in der MSDN Library, z.B. über _open oder _wopen.

Wenn du keinen Grund dafür hast, dann verwende entweder die Methode von der C Standard Library oder iostreams von der C++ Standard Library.

Lactobacillus

Addicted
Registered: Sep 2000
Location: gone
Posts: 389
Zitat
Hat's irgendeinen speziellen Grund, dass du diese low level-Funktionen verwendest?
Nein.

Zitat
Findest ganz leicht in der MSDN Library, z.B. über _open oder _wopen.
Habe ich schon, steht nichts relevates zur Ausgabe...

Zitat
Wenn du keinen Grund dafür hast, dann verwende entweder die Methode von der C Standard Library oder iostreams von der C++ Standard Library.
Werde ich mir anschauen, Danke.

vEspertine

offline..
Registered: Sep 2000
Location: graz
Posts: 4753
int getfiledata()
{
char buf[255];
FILE *f;
struct node *help;
f=fopen("c:\\work\\heinz\\ue29.fil","r"); // r steht für read, rw für write..
if (!f) return 1;
while (!eof(f))
{
if(!fgets(buf, 255, f)) return 1;
if (!getstringdata(buf,&help)) return 1;
insert(help);
}

}


wennst weitere doku braucst nur sagen.. ;)

Lactobacillus

Addicted
Registered: Sep 2000
Location: gone
Posts: 389
thx

Lactobacillus

Addicted
Registered: Sep 2000
Location: gone
Posts: 389
Noch eine Frage:

Ich hole mir mit
Zitat
void main(int argc, char **argv)
die Befehlszeilenparameter (wenn vorhanden). Normalerweise verwende ich immer strcmp um bei einem bestimmten Befehlszeilenparameter (z.B. "/?") eine bestimmte Aktion auszuführen, aber jetzt bräuchte ich den Befehlszeilenparameter als const char und habe keine Ahnung ;)

Ringding:
Der Hinweis mit iostream war Gold wert, ich werfe jetzt nur so mit den fopens, fprintfs, et cetera um mich...

Danke!
Lactobacillus

Simml

asdf
Avatar
Registered: Aug 2000
Location: Wien 9/Ländle
Posts: 6254
agrv[0][0] ... so kannst dir die einzelnen chars herausholen. ich hoffe, das war was du gemeint hasst ;)

mfg simml

Lactobacillus

Addicted
Registered: Sep 2000
Location: gone
Posts: 389
Wie kann man eigentlich Umlaute (ö,ä,...) per printf bzw. cout richtig ausgeben?

Danke!
Lactobacillus

Lactobacillus

Addicted
Registered: Sep 2000
Location: gone
Posts: 389
*heul* Hat niemand eine Ahnung?

Lactobacillus, der zugibt, dass das ein total sinnloses Posting war

dagwood

Little Overclocker
Avatar
Registered: Sep 2000
Location: Bludenz, Vorarlb..
Posts: 104
hmmm ich kenn mich da nur ein bischen aus würde aber sagen das man das mit steuerzeichen lösen kann.
geh mal inx Excel und tipp mal ALT+(ne nummer) und alt loslassen.
das ist der computercode für jedes zeichen.

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Ich seh dein Problem nicht. Schreib halt einfach den Umlaut in den Programm code rein.

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Ah, ich glaub ich weiss, was du meinst. Du siehst auf der Konsole andere Zeichen als im GUI-Editor. Das kommt daher, dass Windows einen anderen Zeichensatz verwendet als DOS. Am einfachsten kriegst du's richtig, wenn du mit einem DOS-Editor (mit geladenem deutschem Tastaturtreiber) die Umlaute in den Sourcecode reinschreibst.

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Du kannst auch folgende Codes verwenden:

ä = \x84
ö = \x94
ü = \x81
Ä = \x8e
Ö = \x99
Ü = \x9a
ß = \xe1

Lactobacillus

Addicted
Registered: Sep 2000
Location: gone
Posts: 389
Danke, es funktioniert :)

Grüße
Lactobacillus
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz