![]() |
c-Quelle - fscanf
Hallo
ich muss ein C-Quelle programmieren. Diese soll auch eine Datei zugreifen, Inhalt auslesen und dann soll es möglich sein weiteren Inhalt in die Datei rein zu schreiben. Code:
{ Gruß |
Vielleicht sind ja einige Namen größer als dein char Array zulässt.
|
fScanf, prinff
Du übergibst an mehren Stellen printf und fscanf falsche Werte. So steht %s für String und %c für Char.
fscanf(f,"%s,%s,%i",&Name,&st,semester); -> &st ist ein Char also also -> fscanf(f,"%s,%c,%i",&Name,&st,semester); Dieses Problem hast du mehrfach auch bei Printf. fprintf(f,"%s %s %i",Name, st, semester); also besser fprintf(f,"%s %c %i",Name, st, semester); Bei Speicherfehlern immer alle fscanf, printf u.s.w prüfen, sind meiner Erfahrung nach fast immer der Grund.:dozey: Bei den char Werten kannst du dir den Referenzparameter sparen, da char ein einfacher Datentyp ist und somit immer referenziert wird. Falls weiter Probs auftreten bitte das Prog. mit Includes und Rahmen zur Verfügung Stellen, damit man es testen kann. Mfg der Lumpi |
Hallo
Anbei der komplette Code. Überschrift der Aufgabe ist es der Umgang mit der Dateien zu üben. Es soll halt eine Datei erstellt werden wenn sie noch nicht erstellt wurde. Diese Datei soll ausgelesen werde und dann sollen weiter Datensätze folgen. Studenten Name[20], Studiumsfach mit einem zeichen und das Semester Code:
#include "stdafx.h" |
da sind ein paar logische fehler drin. die will ich hier nicht im einzelndem aufdröseln ...
du kennst bestimmt schon funktionen, und wie man solche erstellt und verwendet. dann erstell' dir funktionen: FILE* datei_zum_lesen_und_schreiben_oeffnen(char* dateiname) void datei_ausgeben (FILE* datei) void daten_einlesen (FILE* datei) dann sieht main() schonmal so aus: Code:
FILE* datei_zum_lesen_und_schreiben_oeffnen(char* dateiname) { vorteil2: generell bessere übersichtlichkeit im quelltext. ps: zum mode "a+" : Zitat:
viel erfolg! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:07 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.