Logo

רד-בורד: ארכיון

ראשי > תיכנות > ascii porgram

12/04/2007 23:46:54 Rx3vL0n
בניתי את התוכנית שתציג את כול תווי האסקיי שיש
לא כולל היוניקוד
ד"א שאלה כמה תווי יוניקוד יש? והמספור שלהם בC מתחיל מ257 ?
בקיצור זה לא הרעיון המרכזי
בניתי תוכנית עם טעות הקוד מתקמפל ועובד טוב!!!!!
קוד:#include<stdio.h>
#include<conio.h>
int main()
{
int a;
for(a=0;a<256;a++)
printf("%c\n",a);
getch();
return 0;
}
מה בידיוק קרה פה כי אני לא הבנתי!!!!
13/04/2007 13:26:32 devil kide
אם הוא מתקמפל ועובד טוב אז אין טעות :)
13/04/2007 17:51:46 Rx3vL0n
איך אתה מסביר את זה שזה משתנה מסוג int אבל כתבתי %c שזה בכלל למשתנה מסוג char
13/04/2007 18:16:13 haritzik
במצבים מסויימים המהד מתקן שגיאות בעצמו...(אני כותב לך את זה ממחשב של 012 ביזנס, נשארו לי עוד 5 דקות...מישהו השאיר פה עוד 10 דקות, למישהט יש איזה דרך לפרוץ...???)
13/04/2007 18:25:35 Rx3vL0n
לפרוץ מה?
13/04/2007 19:25:11 T4uSBaZ
קודם כל משתנה int יכול לאכסן תווים. הוא מוגדר לטווח גדול יותר ומה זה תווים? הם מאוכסנים כקודים, ולכן אפשר לאכסן אותם ב int , אבל פשוט לרוב ב char מאכסנים אותם כי הוא תופס פחות, (הטווח שלו -255 עד +256 אני חושב) והוא בעיקר לתווים שאפשר להקליד, שזה בדר"כ מה שכותבים. לעומת זאת int יכול להחזיק הרבה יותר (לא זוכר כמה) אבל פשוט ישנם פונקציות שלוקחות כפרמטר מראש char ככה שאי אפשר לשים int.

בכל אופן זה לא העניין, אבל השערתי היא שהתוכנית לא פועלת (וכנראה מסתיימת ב"אל תשלח" נכון?) מכיוון שישנם תווים שאינך יכול להציג , והם תווים מיוחדים.
אתה יכול לנסות טווח שמתחיל מ65 ותראה שזה יציג.
לעומת זאת תווים שמתחילים מ0 הם תווים מיוחדים
14/04/2007 21:25:39 devil kide
char זה בית אחד (0-255) וINT בעיקרון זה שני בתים אבל היום זה 4 בתים.
14/04/2007 22:26:01 Rx3vL0n
ציטוט:קודם כל משתנה int יכול לאכסן תווים. הוא מוגדר לטווח גדול יותר ומה זה תווים? הם מאוכסנים כקודים, ולכן אפשר לאכסן אותם ב int , אבל פשוט לרוב ב char מאכסנים אותם כי הוא תופס פחות, (הטווח שלו -255 עד +256 אני חושב) והוא בעיקר לתווים שאפשר להקליד, שזה בדר"כ מה שכותבים. לעומת זאת int יכול להחזיק הרבה יותר (לא זוכר כמה) אבל פשוט ישנם פונקציות שלוקחות כפרמטר מראש char ככה שאי אפשר לשים int.

בכל אופן זה לא העניין, אבל השערתי היא שהתוכנית לא פועלת (וכנראה מסתיימת ב"אל תשלח" נכון?) מכיוון שישנם תווים שאינך יכול להציג , והם תווים מיוחדים.
אתה יכול לנסות טווח שמתחיל מ65 ותראה שזה יציג.
לעומת זאת תווים שמתחילים מ0 הם תווים מיוחדים
אני רואה את כול התווים :|
20/04/2007 20:35:31 HLL
בעע כמה חרא בטופיק אחד
קודם כל נתקן תטעויות פה:

Rx3vL0n:
יש לשים לב, שמחרוזת הפורמט (להלן: "%c") הוא רק פורמט הצגה, הוא לא מציין איזה טיפוס של משתנה הוא מתייחס אליו.
לכן הדבר אפשרי לחלוטין (זה הגיוני כל עוד גודל הטיפוס המוצג <= לגודל הטיפוס המוצהר).

haritzik: שום שגיאה, אף מהדר, לא מתקן בעצמו.

T4uSBaZ: משתנה char (בשפת סי) גודלו בית אחד, והוא נע בין -127 ל +128 (כאשר מוגדר כ unsigned הוא 0-255)
בנוסף, תווי אסקי האינם ניתנים להצגה לא גורמים לתוכנית שלך להתרסק, לעולם! הם עדיין תווי אסקי תקינים.

Rx3vL0n(שוב):
לגבי השאלה שלך של יוניקוד, זה לא משהוא שמישהוא יכול להביא לך על רגל אחת... כי יוניקוד כולל מגוון שפות, מה שכן. תו יוניקוד הוא לא char!. הוא wchar (בסביבת WIN32, כידוע לי)
06/05/2007 22:09:32 T4uSBaZ
My bad
התבלבלתי +_+
עמודים: 1