N
Neulin91
Gast
Danke schon mal für eure Hilfe.
Grüße der Neulin
Grüße der Neulin
Zuletzt bearbeitet:
(ERLEDIGT)
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Neulin91 schrieb:Also vielleicht könnt ihr mir helfen das er die Zeilen einzeln in Abspeichert.
#include <stdio.h> //standard input output
#include <stdlib.h> //standard bibliothek
const char FILEIN[] = "input.txt";
#define BUFLEN 4096
int main()
{
FILE *fh;
char *fn = FILEIN;
int nCon = 0;
char *zeile = malloc(BUFLEN * sizeof(char));
char **Con = malloc(2 * sizeof(char*));
if ((fh = fopen(fn, "r")) == NULL) {
perror(fn);
return EXIT_FAILURE;
}
while (fgets(zeile, BUFLEN, fh) != NULL) {
int len = strlen(zeile) + 1;
Con[nCon] = malloc(len * sizeof(char));
strcpy(Con[nCon], zeile);
nCon++;
}
for (int i = 0; i < nCon; i++) {
printf("Con[%d]:\t%s", i, Con[i]);
}
return 0;
}
Neulin91 schrieb:Hatte auch versucht ihn zu kompilieren um es besser zu verstehen und mir die ausgabe anzusehen, aber da folgen Fehlermeldungen.
Neulin91 schrieb:einlesen2.c: In function ‘main’:
einlesen2.c:10:17: warning: initialization discards ‘const’ qualifier from pointer target type [enabled by default]
char *fn = FILEIN;
einlesen2.c:23:21: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default]
int len = strlen(zeile) + 1; // strlen liest einen String bis /0 bzw. zum Nullbyte
einlesen2.c:25:9: warning: incompatible implicit declaration of built-in function ‘strcpy’ [enabled by default]
strcpy(Con[nCon], zeile); // Kopieren von String
Neulin91 schrieb:Fehlermeldung:
einlesen2.c: In function ‘main’:
einlesen2.c:11:17: warning: initialization discards ‘const’ qualifier from pointer target type [enabled by default]
char *fn = FILEIN; ^
Neulin91 schrieb:Durch die for-Schleife machst du nur das der die Con[_] hochzählt. Aber meine Frage ist jetzt, wird jede Zeile in einem eigenen Char Array gespeichert?
Also Zeile 1 in Char *Zeile
und Zeile 2 in Char **Con ?
Weil ich brauch theoretisch Zeile 1 in einem Char Array und Zeile 2 in einem eigenen Char Array.
Die Text Datei hat immer nur Zwei Zeilen, wenn sie mehr hat soll eine Fehlermeldung ausgegeben werden.
#include <stdio.h> // standard input output
#include <stdlib.h> // standard bibliothek
#include <string.h> // zeichenketten
const char FILEIN[] = "input.txt";
int main()
{
FILE *fh;
const char *fn = FILEIN;
int nCon = 0;
#define BUFLEN 4096
char *zeile = malloc(BUFLEN * sizeof(char));
char **Con = malloc(2 * sizeof(char*));
if ((fh = fopen(fn, "r")) == NULL) {
perror(fn);
return EXIT_FAILURE;
}
while (fgets(zeile, BUFLEN, fh) != NULL) {
if (nCon < 2) {
int len = strlen(zeile) + 1;
Con[nCon] = malloc(len * sizeof(char));
strcpy(Con[nCon], zeile);
nCon++;
}
else {
printf("Achtung: mehr als zwei Zeilen. Nicht gut!\n");
}
}
for (int i = 0; i < nCon; i++) {
printf("Con[%d]:\t%s", i, Con[i]);
}
return 0;
}
Neulin91 schrieb:Meinst du damit die Zeile 11 int nCon = 0;
Noch zwei Fragen, wofür ist eigentlich das #define BUFLEN 4096?
Die zweite Frage wäre, kann ich jetzt am Ende des Programms die einzelnen Char Arrays also Con[0] und Con[1], einzeln Aufrufen und weiter bearbeiten?
Sorry, komm mir gerade total doof vor, aber bin in C total neu
asdfman schrieb:Und das ist der Grund, warum man jemandem, der etwas lernen will, nicht einfach die Lösung hinwirft