C, מחרוזות ורעיונות...

  • פותח הנושא neko
  • פורסם בתאריך

neko

New member
C, מחרוזות ורעיונות...

יש למישהו רעיון איך לקבל מחרוזת מהמשתמש, כך שלא יוכל להקריס לי את התוכנית פשוט ע"י הכנסת ערך גדול מכפי שהגדרתי למחרוזת?
 

dor_ian

New member
לקלוט תו תו

לבסוף לעבד את התוצאה. רק אם היא עונה על הדרישות להמשיך. נו מסננת קלט. המשתמש לא מרגיש בהבדל. תעזר בפונק' KBHIT שבודקת האם נלחץ מקש. וגם GETCH.
 

zagzagzag

New member
fgets

דוגמה:
#include <stdio.h> #define MAX_SIZE 20 int main(void) { char string[MAX_SIZE]; fgets(string,MAX_SIZE,stdin); return 0; }​
 

neko

New member
ואם המשתמש המרושע יכניס 100

תוים, זה לא יגש לאזורים לא מוקצים במערך?
 

אלדד28

New member
למרות שצריך היה להקצות

MAX_SIZE+1 ולוודא שהתו האחרון יהיה NULL לאחר הקליטה.
 

zagzagzag

New member
fgets דואגת לזה

הפונקציה תקרא MAX_SIZE-1 תווים ותשים NULL בסוף. זה לפחות מה שאני זוכר מ-K&R יכול להיות שהתכוונת לתו של שורה חדשה (אם המחרוזת של המשתמש ארוכה מדי לא יהיה תו כזה)?
 
למעלה