Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Rozdział 17] Kalkulator - problem z funkcją

Ostatnio zmodyfikowano 2015-08-14 15:41
Autor Wiadomość
carlosmay
» 2015-08-13 14:41:52
metoda
cin.ignore( 999999, '\n' );
 poprawnie.
Flagę błędu ustawia w stan domyślny ale nie czyści zawartości strumienia.
Coś skopali przy obsłudze metody
std::cin.sync();

Nie wiem co to przeciążanie funkcji, może jakaś porada?
tzn. funkcje mają te same nazwy, ale różnie się od siebie listą argumentów (czyli mają inny zestaw argumentów w nawiasie, typy i liczbę argum)
i na tej podstawie program wybiera, której funkcji użyć.

wczytajLiczbe() (u mnie nazwa zmieniona na wczytaj(), z powodu tego, że w Visual Studio wszystko traktuje mi jako jeden projekt i nie mogę mieć tych samych nazw funkcji 
Nie bardzo rozumię co tutaj miałeś na myśli, bo z nazwą
wczytajLiczbe()
 program działa prawidłowo.
P-136140
Monika90
» 2015-08-13 14:43:14
zatąp cin.sync(); przez cin.ignore(999999, '\n'); i powiedz czy to coś zmieniło.
Tak zmieniło, bo działa :P
Wyjaśnisz co robi ta linijka?

To jest opisane w kursie
http://cpp0x.pl/kursy/Kurs-C++​/Poziom-1​/Obsluga-strumienia-wejscioweg​o​/12
patrz: Problemy z czyszczeniem strumienia pod Linuksem
P-136142
WilkZKlatki
Temat założony przez niniejszego użytkownika
Odpowiadam #3
» 2015-08-13 14:52:36
Nie bardzo rozumię co tutaj miałeś na myśli, bo z nazwą wczytajLiczbe() program działa prawidłowo.
Używam Visual Studio 2015. Gdy zaczynam coś nowego muszę stworzyć nowy projekt, potem dodaję do niego nowe skrypty. Mam cały jeden projekt od zadań z kursu. Gdy w jakimś skrypcie przypuśćmy zdefiniuję funkcję np.
wczytajLiczbe()
 to w kolejnym pliku gdy zdefiniuję taką samą funkcję wywala mi błąd :/ Chyba, że da się zrobić tak, aby te pliki się nie widziały. Bo nie wiem czemu wykrywa mi jakąś funkcję jak nigdzie nie ma odniesienia by korzystało z tego pliku.

To jest opisane w kursie
http://cpp0x.pl/kursy/Kurs-C++​/Poziom-1​/Obsluga-strumienia-wejscioweg​o​/12
patrz: Problemy z czyszczeniem strumienia pod Linuksem
No i dziwne jest to, bo używam Windowsa 7 :)
P-136143
Monika90
» 2015-08-13 15:14:08
Standard C++ nie wymaga by funkcja cin.sync() czyściła strumień. Microsoft wyposażył ją w takie działanie, a teraz wygląda na to, choć trudno mi w to uwierzyć, że zmienili zdanie. Ostatnio jeden z pracowników tej firmy chwalił się, że przepisali na nowo całe CRT, pewnie przy okazji zmienili też cin.sync().
P-136145
carlosmay
» 2015-08-13 15:44:24
Chyba, że da się zrobić tak, aby te pliki się nie widziały.
Przy tworzeniu projektu zaznacz opcje "Utwórz folder dla rozwiązania" ("Create directory for solution")
w tedy każdy projekt będzie miał odrębny folder dla osobnych projektów.
P-136150
WilkZKlatki
Temat założony przez niniejszego użytkownika
» 2015-08-13 15:52:10
Przy tworzeniu projektu zaznacz opcje "Utwórz folder dla rozwiązania" ("Create directory for solution")
w tedy każdy projekt będzie miał odrębny folder dla osobnych projektów.
To tworzy folder do projektu. Ale pliki w tym projekcie się widzą. Tzn. W skrypcie "A" jest funkcja
int main()
, w skrypcie "B" także, przypuśćmy że w "A" jest kalkulator, a w "B" losowanie liczby - zadania z kursu. Gdy odpalam skrypt "B" w programie wywala błąd że
main()
 już istnieje w "A". I chcę wiedzieć, co zrobić, żeby te pliki się nie widziały (to tak przy okazji bo temat o czym innym mówi).
P-136151
JMII89
» 2015-08-14 00:26:35
Jeśli chcesz zrobić nowy program to raczej robi się nowy projekt... Nie da się tak zrobić ,że w jednym pliku cpp masz int main() i w drugim też int main() . Rób nowy projekt a nie twórz nowych plików cpp.

Albo nie zrozumiałem o co ci chodzi.
P-136208
WilkZKlatki
Temat założony przez niniejszego użytkownika
» 2015-08-14 15:41:05
Tak o to chodziło dzięki. Czyli trochę cackanie się z tym VS. Czemu tam nie ma opcji jednego jedynego skryptu to ja nie wiem. Tylko od razu jakieś projekty :C
P-136245
1 « 2 »
Poprzednia strona Strona 2 z 2