Я пишу программу, которая предполагает получение цифр и букв и преобразование их в целое число после хранения их в одной переменной.
(да, это звучит странно, но это действие, которое я должен сделать)
Как указано ниже:
User = 1 -- Program receives: 49 (1 as per Ascii) - 48 (0 - Ascii) -- Output: 1
User = a -- Program receives: 97 (1 as per Ascii) - 96 (0 - Ascii) -- Output: 1
User = B -- Program receives: 66 (B as per Ascii) - 64 (0 - Ascii) -- Output: 2
Конец файла: Окончательный результат должен быть: 112 (строка)
Что я хочу достичь: Окончательный результат должен быть: 112 (целое число)
Я объявил переменные буквы для получения ввода. Я установил максимум 200 входов. Я пытался использовать scanf(" %c", &letter)
для хранения каждого ввода внутри переменной, но в конце do while
l oop я получаю "ÿ"
в качестве вывода.
Когда я использую fgets(buchstabe, 200, stdin)
Программа даже не продвигается go. Это как-то связано с windows системой?
Вот код:
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
int main () {
char letter;
int count = 0;
do{
printf("Geben Sie ein Buchstabe ein: ");
fflush(stdout);
scanf(" %c", &buchstabe); //here i receive the "ÿ" as output
//fgets(buchstabe, 200, stdin); //here i have no output at all
/*
* this is the processing part, it convert every input according to the ASCII table.
*/
if (buchstabe >= 48 && buchstabe <=57) {
printf("%d\n\n", buchstabe - 48);
}else if(toupper(buchstabe) >= 65 && toupper(buchstabe) <= 90) {
printf("%d\n\n", toupper(buchstabe) - 64);
}
count++;
//I know this EOF looks terrible, but it was the only way i could use it on windows.
}while ((buchstabe = getchar()) != EOF);
printf("\n\nEingabe = %c\n", buchstabe);
printf("Eingabe = %d\n", buchstabe);
printf("\nContador = %d\n", count - 1);
return 0;
}