Forum: PC-Programmierung fprintf() - Newline?


von .jk. (Gast)


Lesenswert?

Hallo Leute!

Folgendes Problem: Ich möchte mit fprintf(); das "\n" (wie man es von 
printf für eine neue Zeile gewohnt ist) anwenden.
Leider funktioniert das aber nicht.


Hier der Code:
1
#include <stdio.h>
2
#include <stdlib.h>
3
4
int main (int argc, char* argv[])
5
{
6
   FILE * pFile;
7
8
   pFile = fopen("C:\\test","wb");
9
   fprintf(pFile,"\n\n\n");


Warum geht das nicht?


Vielen Dank!

von Mark .. (mork)


Lesenswert?

Wenn die Zeilenumbrüche auch im normalen Win-Editor sichtbar sein 
sollen, musst Du "\r\n" nehmen.

MfG Mark

von Peter (Gast)


Lesenswert?

Mark .. schrieb:
> Wenn die Zeilenumbrüche auch im normalen Win-Editor sichtbar sein
> sollen, musst Du "\r\n" nehmen.
oder

pFile = fopen("C:\\test","w"); //ohne b

verwenden

von .jk. (Gast)


Lesenswert?

Ok vielen Dank, es hat dank Euerer Hilfe geklappt :)

Nun noch eine andere Frage. Die Forderung an das Programm ist, dass das 
Textfile im aktuellen Verzeichnis angelegt wird.

Nun habe ich versucht, über die Argument-Vector in der Main den Pfad 
herauszufinden.
Durch argv[0] (erster Parameter ist immer der Pfad des Programms!) 
klappt das leider nicht, da ich nicht den Pfad einschließlich des 
Programmnamens benötige.
Sicher könnte man den String beschneiden (Abschneiden des "xyz.exe"), 
allerdings wird es sehr schnell problematisch, sobald der User das 
Programm auf einen Namen seiner Wahl umbenennt.

Habt ihr eine Idee?


Danke!

von Peter (Gast)


Lesenswert?

du musst bis zum letzen \ bzw / alles nehmen. Dann ist es egal wie das 
Programm heist.

> Die Forderung an das Programm ist, dass das
> Textfile im aktuellen Verzeichnis angelegt wird.
Das heist aber nicht im Verzeichniss wo die exe liegt. Man kann auch 
eine Anwendung ausführen und in einem anderen Vezeichnis sein.

von .jk. (Gast)


Lesenswert?

Was heißt dann aktuelles Verzeichnis?
Für mich heißt das: dort, wo das Programm liegt.

von Peter (Gast)


Lesenswert?

.jk. schrieb:
> Was heißt dann aktuelles Verzeichnis?
> Für mich heißt das: dort, wo das Programm liegt.

genau das heist es aber nicht. Wenn du auf die Kommandozeile gehts und 
dort z.b. ping startest dann bist du im Verzeichnis c:\ aber das 
programm liegt unter c:\windows\system32\ping.exe

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.