C++ Frage (mal wieder)
Lactobacillus 09.03.2001 - 17:49 824 13
Lactobacillus
Addicted
|
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) #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
|
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
|
Hat's irgendeinen speziellen Grund, dass du diese low level-Funktionen verwendest? Nein. Findest ganz leicht in der MSDN Library, z.B. über _open oder _wopen. Habe ich schon, steht nichts relevates zur Ausgabe... 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..
|
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
|
thx
|
Lactobacillus
Addicted
|
Noch eine Frage: Ich hole mir mit 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
|
agrv[0][0] ... so kannst dir die einzelnen chars herausholen. ich hoffe, das war was du gemeint hasst mfg simml
|
Lactobacillus
Addicted
|
Wie kann man eigentlich Umlaute (ö,ä,...) per printf bzw. cout richtig ausgeben?
Danke! Lactobacillus
|
Lactobacillus
Addicted
|
*heul* Hat niemand eine Ahnung?
Lactobacillus, der zugibt, dass das ein total sinnloses Posting war
|
dagwood
Little Overclocker
|
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
|
Ich seh dein Problem nicht. Schreib halt einfach den Umlaut in den Programm code rein.
|
Ringding
Pilot
|
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
|
Du kannst auch folgende Codes verwenden:
ä = \x84 ö = \x94 ü = \x81 Ä = \x8e Ö = \x99 Ü = \x9a ß = \xe1
|
Lactobacillus
Addicted
|
Danke, es funktioniert Grüße Lactobacillus
|