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

[C] problem z sczytywaniem znaków zamiast + - szczytuje LF

Ostatnio zmodyfikowano 2019-01-28 11:16
Autor Wiadomość
Azmael
Temat założony przez niniejszego użytkownika
[C] problem z sczytywaniem znaków zamiast + - szczytuje LF
» 2019-01-27 17:02:39
Witam jest taki problem, pobieram dane z scanf("%c",&zmienna);
i teraz jest taki problem ,że czyta mi wszystkie znaki oprócz + - gdzie jak szczytuje + - to kod znaku w obu przypadkach jest 10.
daje fragment kodu poniżej dał bym cały ale to na zaliczenie a nie chce aby się czepił prowadzący o plagiat.


C/C++
blad = scanf( "%d", & dana );

if( blad )
{
    push( dana, & S );
}
else
{
    blad = scanf( "%c", & dana2 );
   
    // dalej jest switch czytający znaki i robiący odpowiednie operacje  wszystkie polecania oraz * , / robi bez prblmu
    /// tylko z + - jest problem
   
}

P-173719
nanoant20
» 2019-01-27 22:23:58
Może sprawdź kod pod względem formatowania.
W tym kawałku kodu , który podałeś raz używasz
%d - liczba dziesiętna
potem
%c - znak( char)
a push'em pchasz
%s - napis(string)
I te dane, domyślam się, że lądują w strukturze?
Jeżeli tak to jaki jest przechowywany typ? Sprawdź to sobie.

P-173723
pekfos
» 2019-01-27 23:25:45
C/C++
blad = scanf( " %c", & dana2 );
(Spacja przed %c)
P-173724
Azmael
Temat założony przez niniejszego użytkownika
» 2019-01-28 00:07:20
Mam strukturę która jest elementem listy. przechowuje typ int , pierwszy scanf pobiera liczbę jeśli jest porwana wrzuca ja na początek listy. drugi scanf jeśli do pierwszego wpiliśmy symbol zamiast liczby powinien sczytać znak który został w buforze. I tak się dzieje wszystkie opcje oprogramowane *, / ,f (wypisanie zawartości listy) itd. działają tylko ma jakiś problem z + i - n i spacja nie pomogła :(
kiedy sprawdzałem kody symboli sztanych przy - i + zamiast ich kodów wypisuje kod 10.
P-173726
pekfos
» 2019-01-28 00:12:06
Podaj więcej kodu.

spacja nie pomogła :(
Jesteś pewien, że wstawiłeś to we właściwe/wszystkie miejsca?
P-173727
nanoant20
» 2019-01-28 11:16:02
A debugger nie pokazuje żadnych ostrzeżeń (warnings)?
Jeżeli nie ma żadnych ostrzeżeń to podejrzewam, że po wczytaniu znaku pozostaje znak '\n'
rozwiązaniem może tu być użycie getchar() po scanf()
P-173733
« 1 »
  Strona 1 z 1