עבור לתוכן

מישהו יכול לעזור לי עם הודעת הטעות שאני מקבל אחרי הידור (++c) ?

Featured Replies

פורסם

בהידור הקוד דלהלן אני מקבל הודעת שגיאה:

קוד:

// temp1.cpp

#include <iostream>

using std::cout;

void myM(char *);

int main()

{

myM("june");

return 0;

}

void myM(char *month)

{

switch(month)

{

case 'june':

cout << "\nJune";

}

}

הודעת השגיאה אומרת:

ציטוט:

error e2383 switch selection expression must be of integral type in function myM(char *)

מישהו יכול לעוץ לי מה לשנות בקוד כדי שיעבור הידור ?

תודה !

פורסם

SWITCH עובד רק אם משתנים מספריים ולא משהו אחר... אתה מנסה להכניס לו מערך של אותיות...

פורסם

ובכל מקרה בשביל לייצג מחרוזות צריך להשתמש במרכאות כפולות

פורסם
  • מחבר

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

באשר למרכאות כפולות זה משאיר את הודעת השגיאה שתיארתי בעינה אבל מוסיף לי שגיאה נוספת האומרת:

constant expression required in function myM(char *)

אם switch עובד רק עם משתנים מספריים מה אני עושה לגבי מערך מחרוזת ?

פורסם

שוב.. אתה לא יכול לעבוד עם מחזורות כאלו ב SWITCH....

אתה יכול לעשות IF ולהשתמש בפקודה STRCMP

strcmp(a,"test");

מחזיר 0 אם הם זהים, או לא 0 אם לא...

פורסם



switch(strcmp(month, "june"))
{
case 0:
cout<<"fsdf";
}

אל תשכח לעשות גם אינקלוד לstring.h בשביל הפונ strcmp.

אך מומלץ לעשות את זה עם IFכדי שתוכל לבדוק את זה גם עם חודשים אחרים

פורסם
  • מחבר

תודה רבה !

בהחלט הארת הבעיה מכל הזויות !

ארכיון

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

דיונים חדשים