Bu programın neden başarısız, sorunsuz çalıştığını düşünerek saatlerimi harcadım. Her zaman "Karakter özel bir sembol" yazıyor."if" ile döngü düzgün çalışmazken
#include <stdio.h>
int main(void)
{
char character;
printf("Please type any character and I will tell you what type it is:\n");
while(1)
{
scanf("%c", &character);
if(character >= 65 && character <= 90)
printf("The character is A-Z\n");
else if(character >= 97 && character <= 122)
printf("The character is a-z\n");
else if(character >= 48 && character <= 57)
printf("The character is 0-9\n");
else if((character >= 0 && character <= 47) ||
(character >= 58 && character <= 64) ||
(character >= 91 && character <= 96) ||
(character >= 123 && character <= 127))
printf("The character is a special symbol\n");
}
}
Please type any character and I will tell you what type it is:
4
The character is 0-9
The character is a special symbol
Ben ise döngü sildiğinizde o olmaz fark ettik, ama, o döngü neden istediklerini anlamıyorum RUN ÖRNEK
.
scanf'i bir karakterle kullanmayın yerine fgetc (stdin) kullanın –
@RobertLove neden? –
Çirkin yoldan dolayı işe yarıyor. fgetc (stdin), \ n gibi önde gelen boşluk karakterlerinden etkilenmez. Elbette, hala onları alır, ancak hiçbir dönüşüm gerçekleştirmez. http://stackoverflow.com/questions/12063879/fgetcstdin-in-a-loop-is-producing-strange-behaviour –