הגעת למגבלת הצפייה למשתמשים שאינם רשומים באתר
  • נשמח אם תצטרפו לקהילה שלנו. הרשמה לאתר תקנה לכם את האפשרות לשאול שאלות ולהגיב לשרשורים באתר ללא כל עלות
  • טופס ההרשמה לאתר נמצא כאן למטה ולוקח פחות מ-30 שניות למלא אותו (כן, בדקנו עם סטופר 🤓)

שאלה קטנה בC

-=ALX=-

משתמש קבוע
1,927
5
משתמש/ת כבוד
נק' מוניטין:
7,800
1,927
5
אהלן,

אני מנסה לקלוט סדרה באורך בלתי ידוע מראש של מחרוזות עד שקריאה מהקלט נכשלת.

צריך להדפיסן באופן הפוך רקורסיבית.

זה נראה כך:


void f()
{
char s[40];
if(gets(s)==NULL)

return;

f();

puts(s);


}

סליחה על חוסר היישור:)

הבעיה שבקלט של EOF הוא מעיף אותי על SEG FAULT...

מה הבעיה פה?
 
אני שונא רקורסיות.. =P

לפחות בבגרות הייתה שאלה קלילה עם זה
 
חיפשתי בדיחה בGOOGLE
לקח לי זמן להבין שהם צוחקים עלי ...


screenshotquf.png




😣
 
  • פותח/ת השרשור
  • #5
חח משעשע

בכל מקרה הבעיה כנראה אחרת
ניסיתי עכשיו עם FGETS, העברתי לו STDIN
עדיין מעיף :\
 
א) אסור להשתמש ב gets. פעם הבאה באן!
ב) נסה להשתמש ב feof() אולי.

 
  • פותח/ת השרשור
  • #11
CTRL+C
(לא ציינתי זאת אבל מבחינתי שגיאת קלט או סוף תקין של קלט בEOF מבחינת הבעיה היינו הך)
 
CTRL+C
(לא ציינתי זאת אבל מבחינתי שגיאת קלט או סוף תקין של קלט בEOF מבחינת הבעיה היינו הך)

זה לא אמור לשנות .... אבל ...
for future reference
EOF = CTRL + D

---------- התגובה התווספה ב 02:19 ---------- התגובה הקודמת הייתה ב 02:17 ----------

באיזה סביבת פיתוח אתה עובד ?...
(ושים לב למה שאתה אומר ... אתה עלול בסוף לקבל באן)
 
  • פותח/ת השרשור
  • #13
עובד בDEVCPP בווינדוס
מבחינתי = מבחינת הגדרת הבעיה:)
ברור שזה כן משנה
בכל מקרה הוספתי קצת FFLUSH וזה הסתדר
תודה:)
 
  • פותח/ת השרשור
  • #15
LOL
אני גם מעדיף בלינוקס אבל בשביל כזאת חרטה לא היה לי כח לפתוח את הVM
 
CTRL+C
(לא ציינתי זאת אבל מבחינתי שגיאת קלט או סוף תקין של קלט בEOF מבחינת הבעיה היינו הך)

ctrl+c זה לא זה ולא זה. זה מפסיק את התוכנית. אם אתה רוצה להכניס EOF תנסה ctrl+d ב-*nix או ctrl+z בווינדוס.

אגב, אל תשתמש גם ב-fflush. פעם הבאה באן!
 
שימו לב! השרשור ישן: לא היו תגובות בשרשור מעל 90 יום.

ייתכן שהתוכן בשרשור כבר אינו רלוונטי ולכן עדיף לפתוח שרשור חדש.
Back
למעלה תחתית