עזרה ב c++

Dalvikos

New member
עזרה ב c++

מסיבה כלשהי אני לא מצליח לקלוט 2 מחרוזות בגודל לא ידוע, ואז להציג אותן... מצורף קובץ דוגמא בקומפיילר של turbo c++ 3.0 המחרוזות פשוט לא מוצגות ובקומפיילר של וויז´ואל סטודיו 6 זה מודיע שהתכונית ביצעה שגיאה, ויוצא ממנה. מה עושים?
 

zontar

New member
צר לי להגיד לך אבל התוכנית כן עובדת

אולי לא פתחת פרוייקט של win 32 consul application ??
 

Dalvikos

New member
לא,לא... פתחתי קונוסל, אבל...

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

ihovav

New member
זו בעיה ידועה ב CIN

אני מעלה קובץ עם פונקציה שפותרת את הבעיה הזו - תסתכל - בעיקרון אתה צריך לקלוט תו תו מה שאני עשיתי במקרה הזה - הגדרתי CLASS חדש שמבצע את כל הקלט ובו הגדרתי מחדש את הפונקציה שקולטת CHAR* זו אחת מהפונקציות מתוך הCLASS לכן הערך המוחזר הוא CInput
 

ke

New member
cin

אפשר להשתמש ב getline, בצורה כזאת קובעים את התו שאיתו תסתיים הקליטה. ה syntax הוא cin.getline(buf,num,del) // aaa כאשר buf הוא מתשנה מסוג * char, ו num הוא משתנה מסוג מסוג int שאומר כמה תוים לקלוט, ואילו del הוא מתשנה מסוג char שאומר מה התו המסיים (במקרה הזה הוא יהיה ´n\´ .
 
למעלה