green_ Napisano Kwiecień 16, 2008 Zgłoś Share Napisano Kwiecień 16, 2008 Witam wszystkich Dopiero zaczynam uczyć się programować w C Chciałbym aby program na początku pytał użytkownika czy ma utworzyć plik txt czy wczytać dane z już istniejącego następnie pytał o nazwę pliku (jeśli plik istnieje to zeby go odrazu otwierał i wczytywał dane) KOD #include <stdio.h> #include <stdlib.h> int main() { char plik[15]; char nazwisko[31], imie[31]; char wartosc[4] int telefon; FILE *w_pliku; printf("\n Czy chcesz otworzyc istniejacy plik, czy utorzyc nowy:? Wpisz "tak" lub "nie" ")' gets(wartosc); // Nie mam pomyslu jak sformułować tu warunek który będzie odpowiedzią na "tak" albo "nie" if(wartosc==plik) // nie wiem właśnie jak napisać tę funkcje printf("\nPodaj nazwe pliku: "); gets(plik); if(wartosc==plik) // nie wiem właśnie jak napisać tę funkcje printf("\n Wprowadz Imie i Nazwisko: "); scanf("%s %s",imie, nazwisko); printf("\n\t\t Wpisano: %s %s\n",imie, nazwisko); printf("\n Wprowadz numer telefonu: "); scanf("%d",&telefon); printf("\n\t\tWpisano: %d\n",telefon); if((w_pliku=fopen(plik,"w"))!=NULL) Kod który wpisałem jest moją modyfikacją fragmentu kody znalezionego w internecie... ale nie wiem jak napisać warunki dla "tak" i "nie" oraz gdy podana nazwa pliku już istnieje( i tu aby program go otwieral i wczytywał dane) nie rozumie też tego zapisu funki if: KODif((w_pliku=fopen(plik,"w"))!=NULL) Jaką polecacie literaturę dla początkujących traktujacą o programowaniu w C ? Może być w wersji elektronicznej. Z góry dziękuję za udzielenie pomocy Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Kwiecień 16, 2008 Zgłoś Share Napisano Kwiecień 16, 2008 Zdecyduj sie moze w czym ty chcesz pisac ? w Temacie jest C#, w kodzie wyglada mi to na C/C++... Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
xevil21 Napisano Kwiecień 16, 2008 Zgłoś Share Napisano Kwiecień 16, 2008 Toster ma racje to jest C Link do komentarza Udostępnij na innych stronach More sharing options...
xevil21 Napisano Kwiecień 16, 2008 Zgłoś Share Napisano Kwiecień 16, 2008 tu masz jedno z możliwych rozwiązań KOD #include <stdio.h> #include <stdlib.h> int main() { char plik[15]; char nazwisko[31], imie[31]; char wartosc[3]; char telefon[10]; FILE *w_pliku; printf("\nCzy chcesz otworzyc istniejacy plik, czy utorzyc nowy?"); printf("\nWpisz: ''tak'' lub ''nie''| "); gets(wartosc); // Nie mam pomyslu jak sformułować tu warunek który będzie odpowiedzią na "tak" albo "nie" if(wartosc[0]=='t' && wartosc[1]=='a' && wartosc[2]=='k') { printf("\nPodaj nazwe pliku do otwarcia: "); gets(plik); if((w_pliku=fopen(plik,"rb"))==NULL) { printf("\nBlad otwarcia pliku!!!\n\n"); system("PAUSE"); return -1; } fread(&nazwisko,sizeof(nazwisko),1,w_pliku); fread(&imie,sizeof(imie),1,w_pliku); fread(&telefon,sizeof(telefon),1,w_pliku); printf("\nNazwisko: %s",nazwisko); printf("\nImie: %s",imie); printf("\nNumer telefonu: %s\n",telefon); fclose(w_pliku); } else { printf("\nPodaj nazwe dla tworzonego pliku: "); gets(plik); if((w_pliku=fopen(plik,"wb"))==NULL) { printf("\nBlad otwarcia pliku!!!\n\n"); system("PAUSE"); return -1; } printf("\nPodaj nazwisko: "); gets(nazwisko); printf("\nPodaj imie: "); gets(imie); printf("\nPodaj numer telefonu: "); gets(telefon); fwrite(&nazwisko,sizeof(nazwisko),1,w_pliku); fwrite(&imie,sizeof(imie),1,w_pliku); fwrite(&telefon,sizeof(telefon),1,w_pliku); fclose(w_pliku); } system("PAUSE"); return 0; } if((w_pliku=fopen(plik,"w"))!=NULL) - taki zapis oznacza: jeśli operacja otwarcia pliku zakończy sie pozytywnie... (tak w dużym uproszczeniu...) Pozdrawiam! Link do komentarza Udostępnij na innych stronach More sharing options...
green_ Napisano Kwiecień 17, 2008 Autor Zgłoś Share Napisano Kwiecień 17, 2008 tu masz jedno z możliwych rozwiązań KOD #include <stdio.h> #include <stdlib.h> int main() { char plik[15]; char nazwisko[31], imie[31]; char wartosc[3]; char telefon[10]; FILE *w_pliku; printf("\nCzy chcesz otworzyc istniejacy plik, czy utorzyc nowy?"); printf("\nWpisz: ''tak'' lub ''nie''| "); gets(wartosc); // Nie mam pomyslu jak sformułować tu warunek który będzie odpowiedzią na "tak" albo "nie" if(wartosc[0]=='t' && wartosc[1]=='a' && wartosc[2]=='k') { printf("\nPodaj nazwe pliku do otwarcia: "); gets(plik); if((w_pliku=fopen(plik,"rb"))==NULL) { printf("\nBlad otwarcia pliku!!!\n\n"); system("PAUSE"); return -1; } fread(&nazwisko,sizeof(nazwisko),1,w_pliku); fread(&imie,sizeof(imie),1,w_pliku); fread(&telefon,sizeof(telefon),1,w_pliku); printf("\nNazwisko: %s",nazwisko); printf("\nImie: %s",imie); printf("\nNumer telefonu: %s\n",telefon); fclose(w_pliku); } else { printf("\nPodaj nazwe dla tworzonego pliku: "); gets(plik); if((w_pliku=fopen(plik,"wb"))==NULL) { printf("\nBlad otwarcia pliku!!!\n\n"); system("PAUSE"); return -1; } printf("\nPodaj nazwisko: "); gets(nazwisko); printf("\nPodaj imie: "); gets(imie); printf("\nPodaj numer telefonu: "); gets(telefon); fwrite(&nazwisko,sizeof(nazwisko),1,w_pliku); fwrite(&imie,sizeof(imie),1,w_pliku); fwrite(&telefon,sizeof(telefon),1,w_pliku); fclose(w_pliku); } system("PAUSE"); return 0; } if((w_pliku=fopen(plik,"w"))!=NULL) - taki zapis oznacza: jeśli operacja otwarcia pliku zakończy sie pozytywnie... (tak w dużym uproszczeniu...) Pozdrawiam! hej, dzięki za zainteresowanie i pomoc Chodziło mi o czyste C. Moglibyście mnie oświecić co oznacza taki zapis KOD C# Myślałem, że chodzi co czyste c, ale najwyraźniej tak nie jest.... czyżby to miało oznaczać pomieszanie C/C++? Kurcze, sporo z tego kodu nie rozumie... macie może jakieś książki do nauki C dla początkujących? Xevil21 gdybyś mógł się wytłumaczyć z tego kodu byłbym Ci bardzo wdzięczny.. nie rozumie chociażby tego zapisu: KOD if(wartosc[0]=='t' && wartosc[1]=='a' && wartosc[2]=='k') //co oznaczają te podwójne & ? fread // z czym to się je, bo widzę to pierwszy raz na oczy? to to samo co scanf ? filewrite // jak mniemam służy do zapisywania do pliku...? jak to stosować ? Czy zmienna KOD char wartosc[3] nie powinna rezerwować czterech znaków? ostatni dla zera? Ja prosiłem o małą pomoc, a dostałem cały kod programu.... i jak tu człowiek ma się tego nauczyć Nie mniej jednak ogromne dzięki za pomoc Zauważyłem, że całkiem dobrze uczy mi się analizując kod programu... heh...torchę szkoda, że taki gotowiec nie przejdzie, bo koleś sprawdza, czy się rozumie napisany kod.... ale z drugiej strony mobilizuje to do nauki Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Kwiecień 17, 2008 Zgłoś Share Napisano Kwiecień 17, 2008 && oznacza AND czyli koniunkcje, czyli warunki po ub stronach end-a mają być prawdą. A C# to inny język programowania, jak chcesz samo C to napisz "C" a jak boisz się, że Ciebie nie zrozumieją to "czyste C". A tablica powinna mieć 4 elementy rzeczywiście, ponieważ nie ma to pisze się po pamięci. Program jest banalny, 10 minut szukania po necie opisu każdej funkcji, a pewnie facet uczył C was. referncja do c dla leniwych co nie szukają w necie Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
xevil21 Napisano Kwiecień 17, 2008 Zgłoś Share Napisano Kwiecień 17, 2008 char wartosc[3] nie powinna rezerwować czterech znaków? ostatni dla zera? Mój błąd, przepraszam... tak, powinna rezerwować cztery elementy. (na resztę pytań znajdziesz odpowiedź na stronie z linku, który podał Ci Force, w poście wyżej) Pozdrawiam! Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.