Odczytywanie i wpisywanie do pliku

0

Witajcie :)
Bardzo pilnie potrzebuje rozwiązania do takiego zadania:
Stwórz w main tablice znakową TEKST[10][80] i poprawnie wywołaj funkcje wczytaj() i zapisz()
Funkcja void wczytaj(char *nazwa_pliku1) ma wczytać do tablicy TEKST dziesięc lini tekstu o nieparzystych liniach zliczajac od 1 z pliku ktorego nazwa podawana jako argument wywołania i wyświetla te linie na terminalu
Funkcja void zapisz (char *nazwa_pliku1, *nazwa_pliku2) ma umieścić w zadanym plikach informacje o liczbie wczytanych znaków- odpowiednio w formacie tekstowym i binarnym.
Bardzo proszę napisanie lub udzieleniu wskazówek jak to zrobić

0

No bez jaj :D To podstawowa wiedza, w liceum się tego uczy.

https://pl.wikibooks.org/wiki/C/fgets
https://pl.wikibooks.org/wiki/C/fputs

Tutaj masz prawie gotowe funkcje wczytaj/zapisz,spórbuj sam cos naklepać a my Ci pomożemy z błędami, inaczej niczego się nie nauczysz.

Edit:
Ewentualnie przyda Ci się to:
https://pl.wikibooks.org/wiki/C/Wska%C5%BAniki

Edit2:
Jeśli to są gotowe deklaracje funkcji i nie możesz ich zmieniać to stwórz globalna zmienna tekst, tak by wczytaj/zapisz mialy dostep do tej zmiennej

0

#include <stdio.h>
#include <stdlib.h>
#define N 10
#define M 80
void wczytaj (char *nazwa1);
void zapisz (char *nazwa1, *nazwa2);
int main()
{
FILE *fp;
FILE *fb;
fp=fopen("1.txt","r");

char TEKST[N][M];
wczytaj (fp);
fclose(fp);
fp=fopen("1.txt", "w");
fb=fopen("2.txt", "wb");
zapisz (fp, fb);
fclose(fp);
fclose(fb);

return 0;

}

void wczytaj (char *nazwa1)
{
int i=1;
for (i=1;i<20;i=i+2)
{
fgets(TEKST[i-1][0],i,nazwa1);
printf("%s", TEKST[i-1][0]);
}
}
void zapisz (char *nazwa1, *nazwa2)
{
int a;
a=fwrite(TEKST[N][M],sizeof(TEKST[N][M]),sizeof(TEKST[N][M]),nazwa1);
fprintf(nazwa1, "%d",a);
fread (nazwa2, "%d",a);
}

To napisałem ale nie funkcjonuje. Jakieś porady?

0

nie wiem czemu gwiazki mi pozjadało
https://4programmers.net/Pastebin/7888
tu masz link gdzie wyglada to lepiej

0

Bardzo proszę napisanie

// Usuwam trollpost

Proszę bardzo. Warnirngami kompilatora się nie przejmuj, prawdziwi programiści nie zwracają na nie uwagi.

Jeśli w ogóle się nie kompiluje, to pewnie gdzieś zrobiłem błąd, zaraz poprawię.

0

Nie chce mi to działać :/

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

char TEKST[10][80];

void wczytaj (char *nazwa1)
{
    FILE *fHandler = fopen(nazwa1, "r");
    if (NULL == fHandler) {
        exit(1);
    }


    int j,c,k=0;
    for (int i=0; i<20; i++) {
        j = 0;
        while ((c = fgetc(fHandler)) != '\n') {
            if (i%2 == 0) {
                TEKST[i/2][j++] = (char)c;
            }

        }
    }

    fclose(fHandler);
}

int main() {
    memset(TEKST, 0, sizeof(TEKST));
    wczytaj("/test.txt");

    for (int i=0; i<10; i++)
        printf("%s\n", TEKST[i]);
    return 0;
}

Nikt Ci nieda gotowca wykaż minimum chęci, dopiszsobie funkcje zapisz...

Na jakim profilu się uczysz?

0

1 rok elektroniki i to jest moj 1 miesiąc styczności z programowaniem. Potrzebowałem tego na szybko temu tak wyszło. Dzięki ;)

0

int main() {
memset(TEKST, 0, sizeof(TEKST));
wczytaj("/test.txt");

for (int i=0; i<10; i++)
    printf("%s\n", TEKST[i]);

Mógłbys mi powiedzieć po co używamy memseta?

0

Żeby wyzerować całą pamięć na którą wskazuje TEKST. żeby poprawnie działało strlen() np

1 użytkowników online, w tym zalogowanych: 0, gości: 1