[C] Kody ASCII znaku lub liczby

Awatar użytkownika
Poszukujaca
Użytkownik
Użytkownik
Posty: 2775
Rejestracja: 21 maja 2012, o 23:32
Płeć: Kobieta
Podziękował: 1019 razy
Pomógł: 166 razy

[C] Kody ASCII znaku lub liczby

Post autor: Poszukujaca »

Próbuję napisać program w języku c, który po wpisaniu liczby w systemie dziesiętnym lub znaku, wypisze mi jej odpowiednik w kodzie ASCII.

Na razie napisałam coś takiego:

Kod: Zaznacz cały

#include<stdio.h>

int main()
{
	char znak;
	int liczba;
	printf("Podaj znak lub liczbe
");
	scanf("%c",znak);
	scanf("%d",liczba);
	scanf("Kod ASCII: %d
",&znak);
	scanf("Kod ASCII: %c
",&liczba);
	
	
	
	return 0;
}
Proszę o jakieś wskazówki, co jeszcze dopisać bądź zmienić.
Ostatnio zmieniony 22 kwie 2014, o 19:20 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
MadJack
Użytkownik
Użytkownik
Posty: 270
Rejestracja: 21 lis 2010, o 22:23
Płeć: Mężczyzna
Podziękował: 5 razy
Pomógł: 35 razy

[C] Kody ASCII znaku lub liczby

Post autor: MadJack »

Dodaj w scanf znak & przed znak i liczba, natomiast w linii 10 i 11 zmień scanf na printf i usuń &. Natomiast polecenie jest trochę mylące i jak ktoś wpisze np. "12", to pierwsze do zmiennej znak zostanie wczytane '1', a potem do zmiennej liczba '2' ;) Nie musisz się martwić za to co będzie, gdy ktoś wpisze liczbę spoza zakresu char, bo z tego co widzę, to przy konwersji jest ona traktowana mod 256.
lemoid
Użytkownik
Użytkownik
Posty: 199
Rejestracja: 24 maja 2012, o 23:36
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 5 razy
Pomógł: 30 razy

[C] Kody ASCII znaku lub liczby

Post autor: lemoid »

Liczby czy cyfry?

Program wymaga wprowadzenia liczby i znaku, a polecenie sugeruje możliwość wpisania liczby lub znaku, takie czepialstwo.

jeżeli chodziłoby tylko o cyfry, można byłoby to napisać tak:

Kod: Zaznacz cały


#include <stdio.h>


int
main()
{

        char znak;
        printf("Podaj znak lub liczbe: 
");
        scanf("%c", &znak); // pobierając dane za pomocą scanf, przed zmienną stawiasz &
        printf("Kod ASCII: %d 
", znak); // a w print bez



}
char i int są prawie tym samym. Kod ascii uzyskujesz drukując char jako int ( dając %c w miejsce %d na wyjściu program wypisze wprowadzony znak ).
Awatar użytkownika
Poszukujaca
Użytkownik
Użytkownik
Posty: 2775
Rejestracja: 21 maja 2012, o 23:32
Płeć: Kobieta
Podziękował: 1019 razy
Pomógł: 166 razy

[C] Kody ASCII znaku lub liczby

Post autor: Poszukujaca »

lemoid, chodziło mi o liczby (w tym cyfry) i znaki

Jak to możliwe, że program napisany przez Ciebie wypisuje kody ASCII dla liczb i znaków? Wydawałoby się, że będzie działał tylko dla znaków, skoro deklaruje tylko znaki.
Ser Cubus
Użytkownik
Użytkownik
Posty: 1406
Rejestracja: 6 maja 2012, o 22:46
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 107 razy
Pomógł: 145 razy

[C] Kody ASCII znaku lub liczby

Post autor: Ser Cubus »

Kod: Zaznacz cały

int main()
{
   int kod_ascii;
   printf("Podaj znak lub liczbe
");
   kod_ascii = getchar();
   printf("Kod ASCII: %d",kod_ascii);
   
   return 0;
}
to również działa dla cyfr i znaków. Cyfrę można traktować jako znak, funkcja getchar() zwraca char zrzutowany na int, czyli reprezentację w kodzie ascii
Ostatnio zmieniony 22 kwie 2014, o 19:06 przez yorgin, łącznie zmieniany 1 raz.
Powód: Złe tagi.
MadJack
Użytkownik
Użytkownik
Posty: 270
Rejestracja: 21 lis 2010, o 22:23
Płeć: Mężczyzna
Podziękował: 5 razy
Pomógł: 35 razy

[C] Kody ASCII znaku lub liczby

Post autor: MadJack »

Poszukujaca, zastanawiasz się, dlaczego wczyta cyfrę? Cyfra też jest znakiem i żeby wypisać jej kod ASCII, wystarczy zrobić tak jak lemoid.
ODPOWIEDZ