mikrocontroller.net

Forum: PC-Programmierung fprintf() - Newline?


Autor: .jk. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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:

#include <stdio.h>
#include <stdlib.h>

int main (int argc, char* argv[])
{
   FILE * pFile;

   pFile = fopen("C:\\test","wb");
   fprintf(pFile,"\n\n\n");



Warum geht das nicht?


Vielen Dank!

Autor: Mark .. (mork)
Datum:

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

MfG Mark

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: .jk. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: .jk. (Gast)
Datum:

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

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.