ABA


"לא הצלחתי את אחד התרגילים בספר:"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #8105 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 8105
Hell-Boy

   22:55   14.03.04   
אל הפורום  
  לא הצלחתי את אחד התרגילים בספר:  
 
   זה תרגיל שנתנו לי לעשות בספר "ללמוד C מהדורה שלישית", בפרק 13: קבצים בינאריים:
כתוב תוכנית הקוראת 10 ציונים וכותבת אותם לקובץ. הציונים ייקראו מהקובץ אל מערך נוסף. הדפס את תוכן שני המערכים.

זה הקוד שעשיתי:


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

void main()
{
int num, num1, check, i, abc;
FILE *ft, *fp = fopen("abcdefg.bin", "wb");

for (i=0 ; i<10 ; i++)
scanf("%d", &num);
check = fwrite(num, sizeof(int), 10, fp);

if (check!=10)
{
fclose(fp);
exit(1);
}

ft = fopen("abcdefg.bin", "rb");

abc = fread(num1, sizeof(int), 10, ft);

if (abc!=10)
{
fclose(ft);
exit(1);
}

for (i=0 ; i<10 ; i++)
printf("%d %d\n", num, num1);
getch();
}


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

היא נסגרת בקטע הבא:


abc = fread(num1, sizeof(int), 10, ft);

if (abc!=10)
{
fclose(ft);
exit(1);


בגלל שabc שווה 0 ולא 10..
יענו בגלל שהוא לא קרא שום תא..

למה לעזאזל הוא לא קרא שום תא?


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

  האשכול     מחבר     תאריך כתיבה     מספר  
  לא כתבת את הקוד טוב... (נדמה לי) Dudenland 15.03.04 14:10 1
     חחח.... בטח שיש סוגרים מרובעות... Hell-Boy 15.03.04 14:53 2

       
Dudenland

   14:10   15.03.04   
אל הפורום  
  1. לא כתבת את הקוד טוב... (נדמה לי)  
בתגובה להודעה מספר 0
 
   אני חושב שחסר פה משהו בגלל סוגריים מרובעות שלא מופיעות... תקן את הקוד, ונכול לעזור לך... או תקן אותי אם אני טועה...


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

   14:53   15.03.04   
אל הפורום  
  2. חחח.... בטח שיש סוגרים מרובעות...  
בתגובה להודעה מספר 1
 
   ערכתי לאחרונה בתאריך 15.03.04 בשעה 14:56 בברכה, Hell-Boy
 
רק שבאמת שמתי לב שלא רואים אותם...
שניה אני אגיד לך היכן אמור להיות:
int num, num1, check, i, abc;
בשורת הזאת, הגדרתי את num וnum1 כמערך בעל 10 איברים...
scanf("%d", &num);
בשורה הזאת, אחרי num יש סוגריים מרובעות ובתוכם i...
printf("%d %d\n", num, num1);
בשורה הזאת, אחרי num וnum1 יש סוגריים מרובעות שבתוכם i...


זהו...
אלה שלושת השורות היחידות בהן יש סוגריים מרובעות..
עכשיו פשוט תעתיק את הקוד לקובת טקסט, תחליף את השורה המתאימות ואתה תראה את הקוד ברור כמו שהוא...

עכשיו האם אתה מוצא משהו?

נ.ב
תודה רבה שאתה עונה לי...
כי לא עונים לי להודעות משום מה...
תודה.


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

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

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



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