Witam wszystkich,
ostatnio postanowiłem wrócić trochę do C i się pobawić w nim trochę. Problem jednak i to dość spory napotkałem przy wczytywaniu pojedynczego znaku do zmiennej char. Robię 'na moje oko" wszystko dobrze, program się kompiluje, ale po wylosowaniu liczby przez program, pomija on tak jakby instrukcję scanf_s i zakańcza działanie programu. :/ O co może chodzić? Dodam, że pracuję w Visual Studio. Prędzej jak kombinowałem z tym, to program się wykonywał, ale nie wiedzieć czemu, wczytywał jakies krzaki, zamiast literki, która wpisywałem ("t"). W devcpp jak przekleiłem ten kod i użyłem jak się domyslam starszej funkcji scanf, to program działał poprawnie. Za wszelką pomoc będę wdzięczny.. <3
A oto kod programu:
Problem z wczytaniem pojedynczego znaku - scanf_s()
-
- Początkujący
- Posty: 23
- Dołączył(a): poniedziałek, 18 czerwca 2012, 22:16
- Lokalizacja: Nasale (Opolskie)
-
- Początkujący
- Posty: 23
- Dołączył(a): poniedziałek, 18 czerwca 2012, 22:16
- Lokalizacja: Nasale (Opolskie)
Re: Problem z wczytaniem pojedynczego znaku - scanf_s()
http://wklej.org/id/3283825/ - wklejone na wklej.org, bo znowu jest jakiś problem z wklejaniem kodu, w znacznikach ...
Code: Zaznacz cały
Re: Problem z wczytaniem pojedynczego znaku - scanf_s()
Cześć,
Czemu w programowanie C++ korzystasz ze scanf_s zamiast cin?
Pozdrawiam
Czemu w programowanie C++ korzystasz ze scanf_s zamiast cin?
Pozdrawiam
-
- Początkujący
- Posty: 23
- Dołączył(a): poniedziałek, 18 czerwca 2012, 22:16
- Lokalizacja: Nasale (Opolskie)
Re: Problem z wczytaniem pojedynczego znaku - scanf_s()
Haha przyznaję się bez bicia, że niestety odgórnie profesorek od nas wymaga na pierwszym semestrze studiów scanf_s xD Generalnie styczność z programowaniem miałem, z reszta z Pańskimi kursami zaczynałem, ale tutaj ten scanf_s (a bardziej srodowisko Visual Studio o czym zaraz), zżera mi dużo nerwów i czasu, który wolałbym przeznaczyć na bawienie się programowaniem appek android itd...
Ten problem o który pytałem, już rozwiązałem, ale pojawił się nastepny, gdy chciałem na luzaku napisać kod ten sam tylko z zapisywaniem do tablicy i wypisywaniem z niej, co zakładam, że będzie na następnych laborkach (profesorek mówił, że będzie coś podobnego, ale z tablicami). I co się okazało? że kod, który tutaj podlinkuję, w VisualStudio, którego używamy na uczelni, nie kompiluje się, a o to screen z debuggera:
A znowu ten sam kod (no może dokładnie nie ten sam, bo znowu zamieniłem scanf_s na scanf, ale jednak te najistotniejsze fragmenty dla błędów są takie same), wrzucony do devcpp kompiluje się bez problemu i śmiga pięknie... Jakieś rady, o co może chodzić? Czy może wziąć się za radykalne środki i ukatrupić profesorka, za to, że wymaga od nas Visuala (jakby chociaż Code::Blocks nie mógł być, z którym nigdy nie miałem problemów :O)?
Oto kodzik: http://wklej.org/id/3284293/
Za wszelkie rady serdeczne dzięki <3
Edit. No tak, po prostu kompilator powiązany z Visualem, nie przepuszcza tworzenia tablicy w ten sposób, tylko trzeba zadeklarować rozmiar stałą... Po stworzeniu zmiennej const int a i przypisaniu do niej zmiennej ile i tak nie działa
Ten problem o który pytałem, już rozwiązałem, ale pojawił się nastepny, gdy chciałem na luzaku napisać kod ten sam tylko z zapisywaniem do tablicy i wypisywaniem z niej, co zakładam, że będzie na następnych laborkach (profesorek mówił, że będzie coś podobnego, ale z tablicami). I co się okazało? że kod, który tutaj podlinkuję, w VisualStudio, którego używamy na uczelni, nie kompiluje się, a o to screen z debuggera:
A znowu ten sam kod (no może dokładnie nie ten sam, bo znowu zamieniłem scanf_s na scanf, ale jednak te najistotniejsze fragmenty dla błędów są takie same), wrzucony do devcpp kompiluje się bez problemu i śmiga pięknie... Jakieś rady, o co może chodzić? Czy może wziąć się za radykalne środki i ukatrupić profesorka, za to, że wymaga od nas Visuala (jakby chociaż Code::Blocks nie mógł być, z którym nigdy nie miałem problemów :O)?
Oto kodzik: http://wklej.org/id/3284293/
Za wszelkie rady serdeczne dzięki <3
Edit. No tak, po prostu kompilator powiązany z Visualem, nie przepuszcza tworzenia tablicy w ten sposób, tylko trzeba zadeklarować rozmiar stałą... Po stworzeniu zmiennej const int a i przypisaniu do niej zmiennej ile i tak nie działa
Re: Problem z wczytaniem pojedynczego znaku - scanf_s()
Nie możesz zrobić coś takiego jak tu:
musisz dynamicznie zaalokować pamięć przy pomocy operatora new, a później zwolnić ją przy pomocy delete
Code: Zaznacz cały
int wylosowane[ile];
-
- Początkujący
- Posty: 23
- Dołączył(a): poniedziałek, 18 czerwca 2012, 22:16
- Lokalizacja: Nasale (Opolskie)
Re: Problem z wczytaniem pojedynczego znaku - scanf_s()
Haha, czyli moje nocne przemyślenia na temat właśnie alokacji pamięci się potwierdziły. Po napisaniu tej odpowiedzi zaczałem się nad tym zastanawiać, ale nie byłem pewien, bo w C++ nie pisałem nic kupę czasu, bo ostatnio bawiłem się tylko java i php, to i rozleniwiłem się pod kątem dbania o naszą pamięć w PC Cóż, lecę obejrzeć lekcję o alokacji pamięci i przerabiam ten kod, jak pojawią się jakies problemy znowu (oby nie), to wrócę tutaj, ale mam nadzieję, że jednak już teraz będzie mi szło wszystko sprawnie i nie będę musiał się przejmować zbytnio cpp, które aktualnie nie jest mi potrzebne do żadnych projektów, co mam w planach... Dzięki Panie Arku!