עבור לתוכן

קליטת ערך באמצעות cin אחרי לחיצה על ctrl_z ב ++c

Featured Replies

פורסם

שלום

אני קולט ערכים עבור 2 פרמטרים ומשתמש ב cin לצורך זה. להלן הקוד:


// temp.cpp

#include <iostream>
using std::cin;
using std::cout;

int main()
{
   int temp, temp1;
   cout << "First";
   cin >> temp;
   cout << "\nSecond:";
   cin >> temp1;
   return 0;
}

בהרצה אני מקבל: First ולוחץ על ctrl_z. אח"כ אני מקבל ע"ג המסך: Second ואינני יכול להקליד ערך למשתנה השני כי התכנית מסתיימת.

שאלה: איך אני יכול להמשיך להציב ערכים באמצעות cin אחר לחיצה על ctrl_z?

תודה !

פורסם

אני לא בטוח אבל יכול להיות שהוא מכנים את CTRL או Z ( אחד מהם) לBUFFER של המיקלדת....וקולט אותו ישר למישתנה הבאה.... :nixweiss:

תנסה לעשות FLUSH לאוגר

שאלה: למה אתה רוצה לקלוט אם CTRL Z?

פורסם
  • מחבר

איך עושים flush ?

אני עושה ctrl_z כי לפני כן אני מקליד נתונים לקובץ נתונים ב do while ורק כך ניתן לצאת מהלולאה. לא יתכן שאחר הקלדת ctrl_z לא יהיה ניתן להמשיך להקליד נתונים.

קטן על ++C, גדול עלי. אלא אם כן מישהו יחלצני מזה..

פורסם

אני דיי בטוח ש CTRL+Z זה EOF והתוכנית לא יכולה לקרוא כלום אחרי EOF

פורסם

תנקה BUFFER ע"י cin.ignore()

או נסה cin.clean() , cin.clear

פורסם

איך עושים flush ?

אני עושה ctrl_z כי לפני כן אני מקליד נתונים לקובץ נתונים ב do while ורק כך ניתן לצאת מהלולאה. לא יתכן שאחר הקלדת ctrl_z לא יהיה ניתן להמשיך להקליד נתונים.

קטן על ++C, גדול עלי. אלא אם כן מישהו יחלצני מזה..

רגע, לא הבנתי, את המקליד CTRL_Z או שאתה מקליד Z אם מקש ה CTRL לחוץ?

פורסם
  • מחבר

amit

תנקה BUFFER ע"י cin.ignore()

או נסה cin.clean() , cin.clear

לתשובה ברוח זו ציפיתי. את 2 הפונקציות שאתה מציין ניסיתי אך זה לא עבד לי. אנסה אולי שוב. תודה.

רגע, לא הבנתי, את המקליד CTRL_Z או שאתה מקליד Z אם מקש ה CTRL לחוץ?

אני לוחץ על ctrl ועל z בו בזמן. זה מוציא את התכנית ממודול (לולאה) מעבר על קובץ נתונים ומכל מיני דברים אחרים.
פורסם
  • מחבר

תודה רבה על העזרה.

cin.clear() פתר את הבעיה. :hi:

פורסם

עד כמה שאני זוכר, כש- istream (למשל, cin) מקבל EOF (למשל, ע"י ctrl-Z) אז הוא מסמן אצלו את הדגל ios::eofbit ולא ממשיך לקרוא, אלא אם מנקים אותו (למשל עם clear)

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים