Verfügbare Informationen zu "Versuch 4 - leider nicht funktionsfähig !"
Qualität des Beitrags: Beteiligte Poster: louis - wastl Forum: Elektrotechnik-Forum Forenbeschreibung: Hilfsmittel für das Studium aus dem Unterforum: Programmieren Antworten: 2 Forum gestartet am: Dienstag 18.05.2004 Sprache: deutsch Link zum Originaltopic: Versuch 4 - leider nicht funktionsfähig ! Letzte Antwort: vor 19 Jahren, 9 Monaten, 30 Tagen, 9 Stunden, 12 Minuten
Alle Beiträge und Antworten zu "Versuch 4 - leider nicht funktionsfähig !"
Re: Versuch 4 - leider nicht funktionsfähig !
louis - 24.05.2004, 16:28Versuch 4 - leider nicht funktionsfähig !
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define TEXTNAME "text.txt"
#define SORTNAME "sort.txt"
#define CHARMAX 80
#define MAX 5
void TextDateiErstellen();
int TextDateiLesen(char* paZ[]);
int TextArrayAnzeigen(char* paz[]);
int TextArraySortieren(char* paZ[]);
int TextDateiSchreiben(char* paZ[]);
int TextDateiAnzeigen();
int FreeMemory(char* paZ[]);
int main()
{
char* paZeile[MAX]; // Array zur Zwischenspeicherung
printf("4. Praktische Uebung in \"Programmieren 1\" \n\n");
TextDateiErstellen();
if(TextDateiLesen(paZeile)== -1)
return EXIT_FAILURE;
TextArrayAnzeigen(paZeile);
TextArraySortieren(paZeile);
TextDateiSchreiben(paZeile);
TextDateiAnzeigen();
FreeMemory(paZeile);
return EXIT_SUCCESS;
}
void TextDateiErstellen()
{
FILE* fp;
int i=0,j;
int c;
char pcHilf[CHARMAX+1];
fp = fopen(TEXTNAME,"wt");
for(j=0;j < MAX ;j++)
{
printf("Ihr %d . Satz: ",j+1);
while (( c=getchar() != '\n' ) && (i < CHARMAX))
{
pcHilf[i]= c;
i++;
}
pcHilf[i]='\n';
pcHilf[i+1]='\0';
fputs(pcHilf, fp);
fflush(stdin);
i=0;
}
printf("\n\nDie eingegebenen Werte werden abgespeichert........\n\n");
fclose(fp);
return ;
}
int TextDateiLesen(char* paZ[])
{
FILE* fp1;
char caHilf[CHARMAX+1]; //String zur Zwischenspeicherung
char* cptemp; // Zeiger für den allokierten Speicherplatz
int i,c;
printf("Die Werte werden gelesen...........\n\n");
fp1 = fopen(TEXTNAME,"rt");
for(i=0;i<MAX;i++)
{
fgets(caHilf , CHARMAX+1, fp1); //lies die Zeile in den Hilfsstring ein
//reseviert den Speicherplatz für die Zeile
if((cptemp = (char*) malloc(((c=strlen(caHilf)+1)))) == NULL)
{
printf("schwerer Ausnahmefehler: kein Speicherplatz mehr!!!");
return -1;
}
// kopiere den String in der variablen Speicherbereich
strcpy(cptemp,caHilf);
//nehme den Zeiger in das Zielarray auf
paZ[i]=cptemp;
}
return i; //gibt die Anzahl der abgespeicherten Zeiger zurück
}
int TextArrayAnzeigen(char* paz[])
{
int i;
printf("Dies sind die eingelesenen Daten :\n\n");
for(i=0; i < MAX; i++)
{
printf("%d : %s",i+1,paz[i]);
}
return 0;
}
int TextArraySortieren(char* paZ[])
{
char* pcZwischen;
int i,j=0;
do
{
j=0;
for(i = 0; i < MAX-1; i++)
{
if((toupper(*paZ[i])) > (toupper(*paZ[i+1])))
{
pcZwischen = paZ[i];
paZ[i] = paZ[i+1];
paZ[i+1] = pcZwischen;
j=1;
}
}
}while(j != 0);
return 0;
}
int TextDateiSchreiben(char* paZ[])
{
FILE* fp1;
int i;
printf("sortierte Daten werden geschrieben\n\n");
fp1 = fopen( SORTNAME ,"wt");
for(i=0;i < MAX; i++)
{
fputs(paZ[i],fp1);
}
fclose(fp1);
return 0;
}
int TextDateiAnzeigen()
{
FILE* fp1;
int i;
char cArray[MAX];
fp1 = fopen( SORTNAME ,"rt");
printf("Ausgabe von Sort.txt :\n\n");
for(i=0 ; i < MAX ; i++)
{
printf("%d : %s",i+1,(fgets(cArray,CHARMAX,fp1)));
}
fclose(fp1);
return 0;
}
int FreeMemory(char* paZ[])
{
int i;
for(i=0;i<MAX;i++)
{
free(paZ[i]);
}
return 0;
}
Re: Versuch 4 - leider nicht funktionsfähig !
wastl - 21.06.2004, 23:59
//Versuch 4 SS04 Eingabe-,Abspeichern- und Sortieren von Strings
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define datei_eingabe "text.txt"
#define datei_sort "sort.txt"
#define MAXC 81
#define MAXL 5
char zeile[MAXC];
char* pText;
FILE *pDatei;
int TextDateiErstellen(int i)
{
int t=0;
printf("\n\tBitte Text eingeben....:\n");
pDatei=fopen(datei_eingabe,"wt");
pText=zeile;
while(t<MAXL)
{
while((*pText=getchar())!='\n' && i<MAXC)
{
pText++;
i++;
}
pText=zeile;
//printf("Gelesen: %s Anzahl: %d\n",pText,i);
while(i>=0)
{
fwrite(pText,1,sizeof(char),pDatei);
pText++;
i--;
}
pText=zeile;
t++,i=0;
}
fclose(pDatei);
return 0;
}
int TextDateiLesen(char* paZeile[])
{
int t,i=0,x=0;
char* phelp;
pDatei=fopen(datei_eingabe,"rt");
pText=zeile;
for(t=0;t<MAXL;t++)
{
while((fread(pText,1,sizeof(char),pDatei))!=0 && *pText!='\n')
{
pText++;
i++;
}
*pText='\0';
pText=zeile;
//printf("Gelesen: %s\n",pText);
paZeile[x]=(char*)calloc(i,sizeof(char));
phelp=paZeile[x];
x++;
while((*phelp=*pText)!=0)
{
phelp++;
pText++;
}
pText=zeile;
i=0;
}
fclose(pDatei);
return 0;
}
int TextArrayAnzeigen(char* paZeile[])
{
int i=0;
while(i<MAXL)
{
printf("Inhalt Array: %s\n",paZeile[i]);
i++;
}
return 0;
}
int TextArraySortieren(char* paZeile[])
{
int i=0,x=0;
char* buffer;
while(x<MAXL)
{
for(i=0;i<MAXL-1;i++)
{
if(strcmp(paZeile[i],paZeile[i+1])>0)
{
buffer=paZeile[i];
paZeile[i]=paZeile[i+1];
paZeile[i+1]=buffer;
}
}
x++;
}
i=0;
return 0;
}
int TextDateiSchreiben(char* paZeile[])
{
int i=0;
pDatei=fopen(datei_sort,"wt");
while(i<MAXL)
{
fprintf(pDatei,"%s\n",paZeile[i]);
i++;
}
fclose(pDatei);
return 0;
}
int TextDateiAnzeigen(int i)
{
char* pHelp;
pHelp=zeile;
pDatei=fopen(datei_sort,"rt");
while(i<MAXL)
{
fscanf(pDatei,"%s",pHelp);
printf("Gelesen: %s\n",pHelp);
i++;
}
return 0;
}
int FreeMemory(char* paZeile[])
{
int i=0;
while(i<MAXL)
{
free(paZeile[i]);
i++;
}
return 0;
}
void main(void)
{
int i;
char* paZeile[MAXL];
TextDateiErstellen(i=0);
TextDateiLesen(paZeile);
TextArrayAnzeigen(paZeile);
TextArraySortieren(paZeile);
TextDateiSchreiben(paZeile);
TextDateiAnzeigen(i=0);
FreeMemory(paZeile);
}
Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken
Weitere Beiträge aus dem Forum Elektrotechnik-Forum
Überlagerungssatz? - gepostet von Anonymous am Montag 24.04.2006
Skript und Übungsaufgaben 2. Semester - gepostet von Manuel am Mittwoch 19.05.2004
Ähnliche Beiträge wie "Versuch 4 - leider nicht funktionsfähig !"
wiiki - ein versuch - dejost (Montag 29.01.2007)
Nyrea - muss leider aussetzen - Nyrea (Dienstag 22.05.2007)
Zahlenkette (1.Versuch) - trunks (Mittwoch 20.06.2007)
Leider gibts noch immer schwarze Schafe auf der Wiese! - administrator (Dienstag 31.01.2006)
Bin leider derzeit gesperrt!!! - champi (Donnerstag 24.05.2007)
Missglückter Versuch - Aloc Acoc (Dienstag 26.12.2006)
leider keine zeit - Final Fantasy (Mittwoch 18.07.2007)
Pathfinder... - Gunship (Mittwoch 25.03.2009)
Ich starte einen neuen Versuch - Angelika (Montag 27.11.2006)
Leider nicht mehr los hier - steffie85 (Freitag 12.01.2007)