scanf

abcde

New member
"תודה"

תודה על ה"עזרה", אני צריך ליצור לולאה שתקבל מהמשתמש קלט מופרד ברווח ותכניס אותו למערך, לטובת הקלט אני משתמש ב-scanf שאמורה להתעלם מרווחים, אך משום מה זה לא קורה. צירפתי את הקוד שרשמתי בתוכנית: int index=0 char ch; while (arr[index]!='\0') { scanf("%c ", &ch); arr[index]=ch; index++; }
 
מה?!

למה ש SCANF תתעלם מרווחים? כי הוא תו לבן? כי הוא אשכנזי? רווח ו TAB ו r\n\ הם תווים לכל דבר.
 
../images/Emo45.gif למרות שעד כמה שידוע לי

if היא לא פקודת קלט... אבל נראה לי שלקוד שלו זה יתאים.
 

eyalamado

New member
תראה...

בוא נעשה סדר בבלגן... אתה קולט תו תו במקום לקלוט מחרוזת תווים. אגב כן יש פונקציה שמתעלמת מרווחים ולא טעית זה SCANF אך זה מתבצע רק ברגע שאתה רושם את הפקודה הבאה: scanf("%s",&string); כל תו שתקלוט ישמר אחד אחרי השני במחרוזת תווים שקראתי לה STRING עד אשר תלחץ על המקש רווח או אנטר. לגבי פונקצית שקולטת מחרוזת עם רווחים ועם הכל משתמשים ב: gets(string); מקווה שעזרתי
שיהיה לכולם ולך חג שמח:->
 

eyalamado

New member
בולבלתי....../images/Emo13.gif

בוא נעשה סדר בבלגן... אתה קולט תו תו במקום לקלוט מחרוזת תווים. אגב כן יש פונקציה שמתעלמת מרווחים : gets(string); קליטת התווים תופסק עד אשר תלחץ על המקש אנטר. אם אתה רוצה לקלוט מחרוזת עד אשר יוקש מקש רווח או אנטר אז תשתמש כך: scanf("%s",&string); כל תו שתקלוט ישמר אחד אחרי השני במחרוזת תווים שקראתי לה STRING עד אשר תלחץ על המקש רווח או אנטר. מקווה שעזרתי שיהיה לכולם ולך חג שמח:->
 
למעלה