שפת c בעיה ב visual studio 2015 - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

שפת c בעיה ב visual studio 2015


roy132

Recommended Posts

שלום לכולם

בימים האחרונים התחלתי ללמוד שפת c מהספר "ללמוד c" של יואב נתיב. ובזמנו כשהיתי בתיכון למדתי java אך אני משתמש בתוכנה חדשה בשם visual studio 2015 שאין לי בה כול כך נסיון ואני לומד מימנה תוך כדי בקיצור אני מנסה להריץ תוכנית היוב כתב אך היא עושה לי בעיות.

התוכנית היא :

#include<stdio.h>
#include<malloc.h>
void main()
{
	char ch, let;
	ch = getchar();
	flushall();
	let = getchar();
	putchar(let);
	putchar(ch);
}

אני מריץ את התוכנית בלי debugging והתוכנית רצה יפה אך ברגע שאני מכנית את התו הראשון למשל "o" התוכנית מסתיימת והוא מדפיס לי את התו o וזהוא לא נותן לי להקליד את התו השני כאילו מתאלם מימנו

קישור לתוכן
שתף באתרים אחרים

2 דברים:

הראשון שאני לא יודע איך הרצת את הקוד שלך, הוא מחייב לשנות

_flushall();

השני זה שכשאני רץ ב DEBUGGER הוא מראה שמה שנכנס לשני זה סוף שורה \n

 

עריכה: דאגת לשמור את הקובץ כ C ולא CPP?

קישור לתוכן
שתף באתרים אחרים

הבעיה היא שהקוד שלך רץ פעם אחת בלבד. המחשב לא יודע שעליו לקלוט את האותיות שוב ושוב. אתה צריך לשים את הקוד שלך בתוך לולאה כדי שיחזור על עצמו. תחפש בספר הסבר על לולאות מסוג while.

הערה - בשפת C++ לא נהוג להשתמש בmain מסוג void, הקונבנציה היא int main שמחזיר 0 במידה והתוכנית התבצעה בהצלחה.

קישור לתוכן
שתף באתרים אחרים

  • 2 שבועות מאוחר יותר...

זה דיי דוחה, אבל אתה כותב בC, ואני מניח שמבחירה - שים לב שאתה לוחץ על שני כפתורים, התו שאתה מכניס, וenter.

לאחר הלחיצה שלך הזיכרון שמכיל את מה שהקלדת מכיל שני דברים: 

1. התו שהכנסת

2. התו המיוחד '\n', שמסמן ירידה שורה, שנכנס לשם בגלל שככה getc עובד (בע).

int main()
{
	char ch, let;
	ch = getchar();
	getchar();
	flushall();
	let = getchar();
	putchar(let);
	putchar(ch);
    return 0;
}

זה יעבוד, אבל זה דוחה.

אם אתה מחפש דרך יותר טובה לקבל קלט מהמשתמש, מוזמן להציץ כאן:

http://stackoverflow.com/questions/9278226/which-is-the-best-way-to-get-input-from-user-in-c

או לחפש בגוגל.

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...