Proba odczytania pliku.

2015-12-08 20:22

Rejestracja: 4 lata temu

Ostatnio: 3 lata temu

0

Chciałbym sie dowiedzieć jak zrobić żeby fscanf pobierał cały tytuł zamiast pierwszego słowa tytułu w programie :
tak wygląda plik txt:
Zbigniew a Janusze i Roberty 10
Andrzej b Radio 15
Bogdan a Plebania 20
Jonasz c Mosty 17

Wczytałem go za pomocą kodu :

include <stdio.h>
include <stdlib.h>
int main()
{
FILE *autorzy2=fopen("autorzy.txt","r");
struct ksiegarnia
{
    char imie[30];
    char znak;
    char tytul[30];
    int cena;
}n[10];
int a=0,b=0;

while(fscanf(autorzy2,"%s %c %s %d",n[b].imie,&n[b].znak,n[b].tytul,&n[b].cena)!=EOF)
{    b++;
}
fclose(autorzy2);
return 0;
}

wczytuje samo Janusze.

edytowany 1x, ostatnio: olesio, 2015-12-08 21:27

Pozostało 580 znaków

2015-12-08 21:11

Rejestracja: 14 lat temu

Ostatnio: 21 godzin temu

0

Więc powiedz jakiego słowa nie rozumiesz z tego co napisano tu: http://4programmers.net/Forum/1202362

  1. To co podałeś nie jest zapisanym binarnie plikem, ponieważ w pliku takim ceny nie odczytasz, będzie wyglądała jak zestaw krzaczków.
  2. Z tego formatu co podałeś nie da się w żaden sposób odczytać twojego rekordu ponieważ nie wiadomo czy Zbigniew a Janusze i Roberty oznacza '{"Zbigniew",'a',"Janusze i Roberty"}' czy też '{"Zbigniew a Janusze",'i',"Roberty"}'
  3. Aby plik odczytać binarnie trzeba go najpierw binarne zapisać.

Jeżeli jest tak jak piszesz w komentarzu a propos rozwiązania problemu z zapisem binarnym to pokaż jak to zrobiłeś.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
edytowany 2x, ostatnio: _13th_Dragon, 2015-12-08 21:11

Pozostało 580 znaków

2015-12-08 21:18

Rejestracja: 4 lata temu

Ostatnio: 3 lata temu

0

Nie rozumiem rozwiązania z buforem ;/ A jeżeli chodzi o plik binarny to widocznie wczesniej musiałem go źle zapisać. Kod który umieściłem był dobry.

Pozostało 580 znaków

2015-12-08 21:25

Rejestracja: 14 lat temu

Ostatnio: 21 godzin temu

0

Rozwiązania z buforem nie należy rozumieć, trzeba o nim zwyczajnie zapomnieć.

  1. Kod który umieściłeś niczego nie zapisuje.
  2. Poprawny kod odczytu napisany przeze mnie z dużym prawdopodobieństwem nie zadziała poprawnie ponieważ musi współgrać z nieznanym mnie zapisem.
    Najpierw podaj jak wygląda zapis, wtedy można kombinować z odczytem.

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2015-12-08 21:34

Rejestracja: 4 lata temu

Ostatnio: 3 lata temu

0

Właśnie nie chce żeby coś zapisywał tylko probóje znaleŹć sposób do odczytywania całego tytułu (chce to zrozumieć).

Pliku który podałeś nie da się odczytać, jeżeli nadal nie rozumiesz czemu to mów którego słowa nie zrozumiałeś w pkt 2 tego postu: http://4programmers.net/Forum/1202386 - _13th_Dragon 2015-12-08 21:40

Pozostało 580 znaków

2015-12-08 21:36

Rejestracja: 14 lat temu

Ostatnio: 21 godzin temu

1

Nie możesz odczytać tego co nie zapisano.
Kolejny raz powtarzam: - "Najpierw zapis, później odpowiedni odczyt." - powiedz jakiego słowa nie rozumiesz.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2015-12-08 21:55

Rejestracja: 4 lata temu

Ostatnio: 3 lata temu

0

Okej , tutaj napisałem kod żeby zapisywał do pliku strukture:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *autorzy2=fopen("autorzy3.txt","w");
struct ksiegarnia
{
char imie[30];
char znak;
char tytul[60];
int cena;
}n[10];
int a=0,b=0,i=0;
for(i=0;i<2;i++){
printf("podaj imie:\n");
scanf("%s",n[i].imie);
printf("podaj znak:\n");
getchar();
scanf("%c",&n[i].znak);
printf("podaj tytul:\n");
getchar();
gets(n[i].tytul);
printf("podaj cene:\n");
scanf("%d",&n[i].cena);
}
for(i=0;i<2;i++)
{

fprintf(autorzy2,"%s %c %s %d \n",n[i].imie,n[i].znak,n[i].tytul,n[i].cena);
}
fclose(autorzy2);
return 0;
}
A teraz chce się dowiedzieć jak to odczytać za pomocą struktury i zapisać do pliku tekstowego.

edytowany 1x, ostatnio: Adrian112, 2015-12-08 21:56

Pozostało 580 znaków

2015-12-08 21:59

Rejestracja: 14 lat temu

Ostatnio: 21 godzin temu

0
  1. Na temat tego zapisu już dostałeś informacje - NIE MA MOŻLIWOŚCI POPRAWNEGO ODCZYTU - koniec kropka.
  2. Cały czas mówisz o zapisie/odczycie binarnym zaś to co pokazujesz to zapis tekstowy.

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2015-12-08 22:06

Rejestracja: 4 lata temu

Ostatnio: 3 lata temu

0

Źle mnie zrozumiałeś, sprawe z zapisem/odczytem binarnym już skonczyłem. Problem tkwi w tym że chce się nauczyć odczytywać plik tekstowy i umieścić go w takiej strukturze. Największym problemem jest odczytanie, zapis jest prosty.

Pozostało 580 znaków

2015-12-08 22:09

Rejestracja: 14 lat temu

Ostatnio: 21 godzin temu

0

Nie jest prosty skoro totalnie go skopałeś.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2015-12-08 22:12

Rejestracja: 4 lata temu

Ostatnio: 3 lata temu

0

Dopiero zaczynam programować więc nie znam lepszych metod. A co do odczytu , powiesz mi jak to zrobić?

Pozostało 580 znaków

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