Zaloguj się, aby obserwować  
Bartuc

Język C / C++ / C# / Java - pytania, problemy...

1979 postów w tym temacie

Dnia 12.09.2013 o 19:04, Paweuu napisał:

Mam kolejne pytanie: udało mi się utworzyć bazę, wprowadzić do niej dane, uzyskać skrypt
SQL (choć każda tabela jest w innym pliku ale to raczej nie problem). Jeśli chciałbym
pokazać tę bazę na innym komputerze, to wystarczy że skopiuję cały folder serwera czy
to tak nie działa? Jestem kompletnym laikiem w tej dziedzinie, dla mnie niektóre rzeczy
nie są oczywiste :P


Nie wiem czy to zadziała - po to robimy / generujemy zapytania SQL, żeby odtworzyć strukturę bazy na innym komputerze :) Przyśpieszony kurs backup''u dla opornych :) :
Będąc na "stronie startowej" MySQL Workbench w części Server Administration klikasz ''New Server Instance'' - podążasz za wskazówkami kreatora: serwer bazy masz u siebie na kompie więc zostawiasz ''localhost'', next, powinieneś podać hasło jeśli nie zostało zapamietane, i potem kontrolując czy wszystko sie zgadza klikasz next, aż nie ujrzysz upragnionego ''finish''. Po tym wszystkim możesz wybrać swój serwer i bawić się w administratora. Zaznaczasz go i klikasz ''Manage Import / Export''. W lewym menu sprawdzasz czy jesteś w ''Data Export'', zaznaczasz pożądaną bazę, wybierasz tabele do backup''u i klikasz ''Start Export'' (zwróć uwagę na folder gdzie będziesz miał swój backup - np u mnie jest to: /home/<nazwa_uzytkownika>/dumps/). Po exporcie masz gotowy skrypt SQL z zawartościami tabeli. Import robisz analgicznie :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Mam problem, może mi ktoś powiedzieć dlaczego gdy daje w warunku != dalej mi wypisuje te które utworzył?

#include <stdio.h>
int main()
{int i,j;
for (i=0; i < 255 ; i++){
char nazwa[257];
FILE *plik;
sprintf(nazwa, "/home/lukasz/cos/%c", i+1);
if(plik != fopen(nazwa,"w"))
{printf("blad %2c", i);}
//fclose(plik);}}
Przepraszam za taki format, ale chciałem by było jak najkrucej

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Masz niedomkniętą pętlę for i ogólnie program. Masz klamrę przy int, klamrę przy for, klamrę przy if, a domknąłeś tylko tę, która jest przy instrukcji warunkowej.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 08.10.2013 o 22:04, Harrolfo napisał:

Masz niedomkniętą pętlę for i ogólnie program. Masz klamrę przy int, klamrę przy for,
klamrę przy if, a domknąłeś tylko tę, która jest przy instrukcji warunkowej.

Wszystko ładnie domknięte, przecie kompiluje się

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nie za bardzo rozumiem Twoje pytanie, ale warunek:
if(plik != fopen(nazwa,"w"))
zawsze będzie true, bo Twoja zmienna "plik" jest jakimś niezainicjowanym wskaźnikiem na niewiadomo co (ewentualnie wskazuje na jakieś losowe miejsce w pamięci), więc czego z tym nie porównasz to zawsze będzie to różne. Jeśli chcesz sprawdzić, czy udało się poprawnie otworzyć plik do zapisu (chociaż z tego co ja kojarzę, flaga "w" jest dość brutalna i jeśli plik o podanej nazwie istnieje to go nadpisuje a jeśli nie istnieje to go tworzy. Ale głowy za to nie dam) to powinieneś zrobić coś w klimatach
plik = fopen(nazwa,"w");
if(!plik)
printf("COS SIE RYPLO");

Bo to co teraz stworzyłeś to śmiem twierdzić nie robi tego co chcesz, żeby robiło.

http://pl.wikibooks.org/wiki/C/fopen
O mniej więcej tak powinieneś to zrobić

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Mam dwa zdawałoby się banalne pytania.

1. Jak to jest z argumentami przekazywanymi do funkcji? Jak mam je wybierać? Skąd mam wiedzieć które wpisać?

2. Czytałem, ale dalej nie rozumiem i potrzebuje wyjaśnienia łopatologicznego o co chodzi z tymi int main(int argc, char *argv[])?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 11.10.2013 o 12:20, Daronn_Darker napisał:

Mam dwa zdawałoby się banalne pytania.

1. Jak to jest z argumentami przekazywanymi do funkcji? Jak mam je wybierać? Skąd mam
wiedzieć które wpisać?


Trochę dziwne pytanie. Każda z bibliotek ma dokumentacje np. tutaj biblioteka standardowa: http://www.cplusplus.com/reference/ - szukasz czego ci potrzeba, patrzysz co przyjmuje, co zwraca i jedziesz dalej.

Dnia 11.10.2013 o 12:20, Daronn_Darker napisał:

2. Czytałem, ale dalej nie rozumiem i potrzebuje wyjaśnienia łopatologicznego o co chodzi
z tymi int main(int argc, char *argv[])?


To jest główna funkcja programu - wykonane zostanie tylko to, co jest w mainie. Przyjmuje 2 parametry - pierwszy to liczba całkowita - ilość argumentów przekazanych do maina, drugi parametr to tablica przekazanych argumentów, w postaci ciągu znaków. Funkcja zwraca liczbę całkowitą - zwracasz 0, jeśli program zakończył się pomyślnie, a inna liczbę całkowitą w przypadku błędu.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dnia 11.10.2013 o 12:44, eNcore napisał:

Trochę dziwne pytanie. Każda z bibliotek ma dokumentacje np. tutaj biblioteka standardowa:
http://www.cplusplus.com/reference/ - szukasz czego ci potrzeba, patrzysz co przyjmuje,
co zwraca i jedziesz dalej.

10000 tys zł dla Ciebie jeśli powiesz mi co zwraca funkcja kura_domow()

Dnia 11.10.2013 o 12:44, eNcore napisał:

To jest główna funkcja programu - wykonane zostanie tylko to, co jest w mainie. (...)

Jakiś przykład?

I jeszcze jedno pytanie, czy można w strukturze umieścić wskaźnik do funkcji i jak to będzie działać w praktyce i teorii?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 11.10.2013 o 19:23, Daronn_Darker napisał:

10000 tys zł dla Ciebie jeśli powiesz mi co zwraca funkcja kura_domow()


Wciśnij Ctrl+Spacja w swoim IDE. Na moim gramsajcie masz namiary na mnie, skontaktuj się aby ustalić numer konta, na które prześlesz nagrodę. :D

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 11.10.2013 o 19:23, Daronn_Darker napisał:

10000 tys zł dla Ciebie jeśli powiesz mi co zwraca funkcja kura_domow()

Jajko? a tak przy okazji to się ustala przy deklaracji/definicji funkcji, masz tam [typ zwracanej wartośći, np int/string/nazwa klasy etc (w przypadku gdyby nie zwracała nic jest void) nawa funkcji ([tutaj argumenty funkcji oraz ich typy]).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 11.10.2013 o 20:08, rob006 napisał:

> 10000 tys zł dla Ciebie jeśli powiesz mi co zwraca funkcja kura_domow()

Wciśnij Ctrl+Spacja w swoim IDE. Na moim gramsajcie masz namiary na mnie, skontaktuj
się aby ustalić numer konta, na które prześlesz nagrodę. :D

No geniuszu znałem to, ale powiedz mi. Jeśli wyświetla mi 20 różnych, wszystkie mam przekazać?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 12.10.2013 o 00:14, Daronn_Darker napisał:

No geniuszu znałem to, ale powiedz mi. Jeśli wyświetla mi 20 różnych, wszystkie mam przekazać?


Jak to "wyświetla 20 różnych"? 20 czego?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 12.10.2013 o 01:07, rob006 napisał:

> No geniuszu znałem to, ale powiedz mi. Jeśli wyświetla mi 20 różnych, wszystkie
mam przekazać?

Jak to "wyświetla 20 różnych"? 20 czego?

No parametrów np.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Owszem masz przekazać 20 parametrów, zwraca natomiast tylko jeden (no chyba że zamiast parametru funkcja dostaje wskaźnik do niego, wtedy może go modyfikować, ale generalnie return przyjmuje jeden parametr albo wcale (funkcja zwracajaca void). Parametr może być naturalnie strukturą/kontenerem która zawiera w sobie ileś tam elementów.

No chyba że część tych parametrów ma wartości domyślne, wtedy nie muszisz wszystkich, "odliczasz" je naturalnie od lewej. jak np masz void funkcjajakastam(int a = 3 , double b = 5.3 string c = "cos") to wtedy można ją wywołać z jednym parametrem (podajesz a, b i c pozostaną domyślne), z dwoma (c domyślne, a i b podajesz), lub z trzeba (podajesz wszystkie 3), lub też bez parametrów i wtedy wszystkie będą domyślne.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 11.10.2013 o 12:20, Daronn_Darker napisał:

1. Jak to jest z argumentami przekazywanymi do funkcji? Jak mam je wybierać? Skąd mam
wiedzieć które wpisać?

To zależy od konkretnej funkcji. Dev i Visual Studio (więc i pewnie inne środowiska) pokazują, jakie typy są oczekiwane przez daną funkcję. Jeśli funkcja wymaga 20 parametrów, to musisz je podać. Ważnym przypadkiem są przeciążenia funkcji - funkcja może mieć różne postacie dla różnych parametrów, tzn. technicznie są to dwie różne funkcje o tej samej nazwie. Wtedy musisz dostarczyć jeden z wymaganych zestawów parametrów. Np. mamy dwie funkcje o tej samej nazwie:
int dodaj(int a, int b);
int dodaj(int a, int b, int c);
Wywołanie dodaj(5,4) wywoła pierwszą, a dodaj(1,2,3) wywoła drugą.

Dnia 11.10.2013 o 12:20, Daronn_Darker napisał:

2. Czytałem, ale dalej nie rozumiem i potrzebuje wyjaśnienia łopatologicznego o co chodzi
z tymi int main(int argc, char *argv[])?

Program możesz wywołać z parametrami, podając je przy jego odpalaniu np. w konsoli. Jak grałeś w jakieś gry to pewnie czasami musiałeś dodać do tzw. linii poleceń "-console", żeby uaktywnić konsolę. To właśnie taki parametr. I teraz zmienna argc przechowuje ilość tych parametrów, a podwójna tablica argv ich konkretne wartości. Możesz tego użyć do konfiguracji swojego programu, np. podać mu w ten sposób jakąś konkretną ścieżkę do folderu albo pożądaną rozdzielczość.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Utwórz konto lub zaloguj się, aby skomentować

Musisz być użytkownikiem, aby dodać komentarz

Utwórz konto

Zarejestruj nowe konto na forum. To jest łatwe!


Zarejestruj nowe konto

Zaloguj się

Masz już konto? Zaloguj się.


Zaloguj się
Zaloguj się, aby obserwować