ABA


"שאלה ב-C"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #14767 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 14767
פלזמה 
חבר מתאריך 22.1.08
1044 הודעות
   18:52   31.05.08   
אל הפורום  
  שאלה ב-C  
 
   ערכתי לאחרונה בתאריך 31.05.08 בשעה 19:01 בברכה, פלזמה
 
אני מישתמש בתוכנת DEV Cּּ
מוצגים שני תוכניות ב C .
1. בראשונה הבעיה שלאחר שניקלטת אות U למשל הפלט הוא
you no entered y char
ואחריה אותו מישפט שוב והמתנה לקלט נוסף
והשאלה איך ליכתוב כך שהמישפט you no...
יופיע רק פעם אחת בפלט ולא פעמיים?(עם פקודת break)

2.בתוכנית השניה כאשר ניקלט התו Y בכול לולאה אחת צריך להיות חזרה של Y
10 פעמים בפלט ולדלג על שורת הפלט
"you no entered y char"
ואין דילוג על שורת הפקודה הזו. כדי לדלג על שורת קוד זו אני מישתמש בפקודה CONTINUE.איך ליכתוב כך שיהיה דילוג עם פקודת CONTINUE?
הפלט שלו :
Y (+אנטר)
you no entered y char y
you no entered y char u
you no entered y charyou no entered y char y
אנטר
you no entered y char

3. התוכנית לא פועלת עם פקודת ;()flushall והייתי מישתמש בימקומה בעוד שורה של ;()getchar ויש בעיה של בליעת תווים בפלט.

אני ברמת התחלה ולכן אני צריך ניסוח תשובות פשוט, מפורט ואם אפשר בדוגמאות

#include <stdio.h>
#include <stdlib.h>

void main()
/*{

int x;
char a;


for(x=0;x<=10;x++)
{
//getchar();
a=getchar();
if(a=='y')

break;
printf("you no entered y char");

}


system("PAUSE");

}*/

{
int x;
char a;


for(x=0;x<=10;x++)
{
//getchar();
a=getchar();
if(a=='y')

continue;
printf("you no entered y char");

}


system("PAUSE");
}



                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  לא הבנתי את השאלה השניה שלך vintox 04.06.08 00:57 1
     הסבר השאלה השניה פלזמה  20.06.08 13:14 2
  תשמע, לא בטוח שהבנתי מה אתה רוצה לעשות... idan192 20.06.08 14:48 3
     עידכון פלזמה  21.06.08 18:43 4
  לא כתבת נכון את הפקודה בגלל זה לא עובד לך vintox 23.06.08 13:48 5

       
vintox

   00:57   04.06.08   
אל הפורום  
  1. לא הבנתי את השאלה השניה שלך  
בתגובה להודעה מספר 0
 
   הניסוח שלך לא הכי מובן שיש
אבל בקשר לתוכנית שלך היא לא עובדת כי אתה לא
מנקה את החוצץ ומהקש אנטר נשמר ביכרון
בגלל זה הוא מדפיס לך פעמיים את השורה
you entered no y char
במהדר dev c++
אין את הפקודה flushall
במקום זאת יש את הפקודה
fflush(stdin);

מקווה שעזרתי


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
פלזמה 
חבר מתאריך 22.1.08
1044 הודעות
   13:14   20.06.08   
אל הפורום  
  2. הסבר השאלה השניה  
בתגובה להודעה מספר 1
 
   ערכתי לאחרונה בתאריך 20.06.08 בשעה 13:20 בברכה, פלזמה
 
התוכנית אמורה לבקש תו ואם נירשם Y , שוב ישאל אותי ואם שוב ירשם Y שוב יבקש עוד תו ...ואם יוקלד תו אחר הוא אמור להודיע שלא הוקלד Y ולבקש שוב תו. בימקום זה לא משנה איזה תו אני יקליד הוא יתן פלט - שלא הכנסתי את התו Y ,בניסוח באנגלית.יכול להיות שזה ביגלל שצריך פקודה חלופית ל-FLUSHALL.
FFLUSHSTDIN לא מחליף את flushall
יש לציין שבהחלפת האותיות למיספרים התוכנה פועלת באופן תקין


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
idan192

   14:48   20.06.08   
אל הפורום  
  3. תשמע, לא בטוח שהבנתי מה אתה רוצה לעשות...  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 20.06.08 בשעה 17:20 בברכה, idan192
 

#include <stdio.h>
#include <stdlib.h>

int main(){
char a;
int x;
for(x=0; x<=10; x++){
printf("Please enter a char: ");
//You might need another blank getchar() in here
a = getchar(); //You also may use scanf("%c", &a);
if(a=='y')
break;
printf("You didn't enter the "y" char\n");
}
system("pause");
return 0;
}


אבל בגדול, זה תיכנות לא כזה נקי... אבל אני לא רוצה לסבך אותך יותר מדיי.
לא בדקתי אם הקוד מתקמפל, אז אם זה לא תעדכן פה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
פלזמה 
חבר מתאריך 22.1.08
1044 הודעות
   18:43   21.06.08   
אל הפורום  
  4. עידכון  
בתגובה להודעה מספר 3
 
   התוכנית פועלת בעיקרון אבל צריך להכניס גם בתוכנית זו פקודה חלופית ל-
flushall.

מה שם הפקודה החלופי?
fflushstdin(); הוא לא הפקודה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
vintox

   13:48   23.06.08   
אל הפורום  
  5. לא כתבת נכון את הפקודה בגלל זה לא עובד לך  
בתגובה להודעה מספר 0
 
   הפקודה היא
fflush
ובתוך הסוגריים stdin

אין לי מושג איך לכתוב פה קוד בלי שזה יהפוך את הכל
מקווה שזה מובן
אם לא אני יעלה לך את הקובץ מתוקן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net