Problem z wczytaniem pojedynczego znaku - scanf_s()

Problemy i ich rozwiązania w C++.

Problem z wczytaniem pojedynczego znaku - scanf_s()

Postprzez kunegundek » wtorek, 31 października 2017, 12:49

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"). :P 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:
kunegundek
Początkujący
Początkujący
 
Posty: 22
Dołączył(a): poniedziałek, 18 czerwca 2012, 22:16
Lokalizacja: Nasale (Opolskie)

Re: Problem z wczytaniem pojedynczego znaku - scanf_s()

Postprzez kunegundek » wtorek, 31 października 2017, 12:50

http://wklej.org/id/3283825/ - wklejone na wklej.org, bo znowu jest jakiś problem z wklejaniem kodu, w znacznikach [code][/code]... :D
kunegundek
Początkujący
Początkujący
 
Posty: 22
Dołączył(a): poniedziałek, 18 czerwca 2012, 22:16
Lokalizacja: Nasale (Opolskie)

Re: Problem z wczytaniem pojedynczego znaku - scanf_s()

Postprzez Morfidon » wtorek, 31 października 2017, 14:39

Cześć,

Czemu w programowanie C++ korzystasz ze scanf_s zamiast cin?

Pozdrawiam :)
Morfidon
Administrator
Administrator
 
Posty: 1325
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48

Re: Problem z wczytaniem pojedynczego znaku - scanf_s()

Postprzez kunegundek » środa, 1 listopada 2017, 01:46

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... :D
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:
Obrazek
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... :D 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)? :D

Oto kodzik: http://wklej.org/id/3284293/

Za wszelkie rady serdeczne dzięki <3 :D

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 :D
kunegundek
Początkujący
Początkujący
 
Posty: 22
Dołączył(a): poniedziałek, 18 czerwca 2012, 22:16
Lokalizacja: Nasale (Opolskie)

Re: Problem z wczytaniem pojedynczego znaku - scanf_s()

Postprzez Morfidon » środa, 1 listopada 2017, 10:27

Nie możesz zrobić coś takiego jak tu:
Kod: Zaznacz cały
int wylosowane[ile];


musisz dynamicznie zaalokować pamięć przy pomocy operatora new, a później zwolnić ją przy pomocy delete :)
Morfidon
Administrator
Administrator
 
Posty: 1325
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48

Re: Problem z wczytaniem pojedynczego znaku - scanf_s()

Postprzez kunegundek » środa, 1 listopada 2017, 13:25

Haha, czyli moje nocne przemyślenia na temat właśnie alokacji pamięci się potwierdziły. :D 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 :D 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... :D Dzięki Panie Arku! :D
kunegundek
Początkujący
Początkujący
 
Posty: 22
Dołączył(a): poniedziałek, 18 czerwca 2012, 22:16
Lokalizacja: Nasale (Opolskie)


Powrót do C++

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość

cron