Forum
Tipps
News
Menu-Icon

Hilfe bei Aufgaben in Programmierung

Hallo,
Also entweder ich bin zur Zeit einfach nicht fähig oder ich finde die Fehler einfach nicht.

Folgende Aufgabe:
Schreiben Sie ein Programm, das den Inhalt einer Text-Datei analysiert. Dazu sei die Datei faust_kurz.txt gegeben, die den flogenden Inhalt (aus Goethes Faust) hat:

Da steh ich nun,
ich armer Tor!
Und bin so klug
als wie zuvor;

Das Programm faust.c soll nun die Häufigkeit eines bestimmten Buchstabens, den der Benutzer wählen kann, in dieser Datei ermitteln.

(In diesem Falle hat der kurze Text in jeder Zeile GENAU 16 Zeichen, um es zu vereinfachen)


Ich arbeite mit Visual Studio 2010, auf Windows xp.

Ich sitze seit Stunden an dem Quellcode und bekomme es nicht hin, das die Datei überhaupt geöffnet wird... (mit fopen) Geschweige denn, dass das Prog. die Zeilen einliest.

Ich bin noch ziemlicher Anfänger und weiß einnfach nicht mehr weiter...Ich hoffe mir kann hier geholfen werden. Problem ist auch das wir noch nicht alles C-Befehle haben. Es steht auch unter den Aufgaben, dass das Programm unnötig lang wird...

Danke schon mal...

Mfg Jeanni


Antworten zu Hilfe bei Aufgaben in Programmierung:

C ist auch nicht meine Richtung, hilfreich ist aber immer den Quelltext zu zeigen, da kann man dann ansetzen

 

Zitat
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"


int main(void)
{
   FILE *fp;
   char zeichen1, zeichen2, zeichen3, zeichen4, zeichen5, zeichen6, zeichen7, zeichen8, zeichen9, zeichen10, zeichen11, zeichen12, zeichen13, zeichen14, zeichen15, zeichen16;
   
   fp = fopen ("C:\\Dokumente und Einstellungen\\Standard\\Desktop\\faust_kurz.txt", "r");
   if(NULL == fp) {
      printf("Die Datei \"C:\\Dokumente und Einstellungen\\Standard\\Desktop\\faust_kurz.txt\" konnte nicht geöffnet werden!\n");
   }

   else {
      fscanf (fp, "%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n", &zeichen1, &zeichen2, &zeichen3, &zeichen4, &zeichen5, &zeichen6, &zeichen7, &zeichen8, &zeichen9, &zeichen10, &zeichen11, &zeichen12, &zeichen13, &zeichen14, &zeichen15, &zeichen16);
      fprintf (fp, "Die erste Zeile lautet: %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c", &zeichen1, &zeichen2, &zeichen3, &zeichen4, &zeichen5, &zeichen6, &zeichen7, &zeichen8, &zeichen9, &zeichen10, &zeichen11, &zeichen12, &zeichen13, &zeichen14, &zeichen15, &zeichen16);
   }
      system("PAUSE");
   
   return 0;
}


Dazu muss man sagen das dieser nun schon ziemlich versaut ist durch meine ewigen rumfuchteleien...

achja ich habe 16 char...in dem Zettel steht i-was von 17 Variablen?

Ich glaube ich geh ganz anders an die Aufgabe ran als man sollte...

wie wärs mit folgendem?

int iNumber; // <- Anzahl vorkommnisse
char zeichen, zeichenZuSuchen; // <- zeichen das gelesen wird, zeichen nachdem zu suchen ist


for(int i = 0; i < 16; i++)
{
fscan(fp, &zeichen)
if(zeichen == zeichenZuSuchen) iNumber++;
}

Hallo , ich hoffe ich kann dir jetzt noch helfen.
Was mir direkt aufgefallen ist du benutz variablen
. Wieso? hattet Ihr das Thema vektoren noch nicht? Das auf dem Blatt bei dir 17 steht ist kein wunder.
char vektoren oder strings benötigen einen sogenannte null terminierung. Das bedeutet du hast bei
char vec[17];
16 nutzbare Zeichen das ganze mit normalen variablen zu machen ist viel zu viel arbeit schon alleine das %c zu schreiben ;-)
Da ich aber lange nicht mehr mit C zu tun hatte möchte ich mich jetzt hier nicht blamieren und den ganzen Code schreiben, wenn du allerdings Hilfe brauchst kann ich dir anbieten das ich das Programm heute Abend zu Hause wo ich meinen Compiler habe schreiben kann ;-)

Lg julian

char vektoren oder strings benötigen einen sogenannte null terminierung. Das bedeutet du hast bei
char vec[17];
Versteh ich ehrlich gesagt nicht, \0 bzw. \r\n ist kein Kriterium das dir in der aufgabe irgendwas bringt, also ist die Terminierung gänzlich zu vernachlässigen. Bei der aufgabenbeschreibung ist auch kein einlesen gesamter Zeilen nötig, da wir Zeichen suchen.
Falls die 17 strikte Vorgabe sind - okay. Falls nicht, gänzlich überflüssig. 

« Ich möchte programmieren lernen! -> Beantwortung dieser FrageHTML Text aus einem anderen Textdokument (Dokument) einfügen »
 

Fremdwörter? Erklärungen im Lexikon!
Zugriffszeit
In Milisekunden angegebene Zeit, die das Speichermedium zum Erreichen der gesuchten Daten braucht. Die Zeit ist abhängig vom technischen Verfahren des Mediums sowie ...

Reaktionszeit
In der Elektronik versteht man unter der Reaktionszeit die Zeit, die ein Flachbildschirm benötigt, um die Farbe und die Helligkeit eines Bildpunktes zu ändern. ...

Internet-Zugriffsprogramm
Ein Internet-Zugriffsprogramm, auch Browser genannt, stellt Internetseiten für den Benutzer dar. Am bekanntesten ist der Microsoft Internet Explorer, gefolgt vom kos...