עזרה ב-C...

Soleil du Matin

New member
עזרה ב-C...

אני צריכה לעשות לולאה שבכל ריצה שלה אני פותחת קובץ חדש, למשל kokox.txt כשה-X זה מספר הריצה של הלולאה. אני יודעת איך פותחים קובץ בשם קבוע, אבל לא יודעת איך אפשר לעשות שהשם יהיה פרמטר משתנה. אפשר לעשות את זה? שהשם של הקובץ יהיה אחר בכל סיבוב של הלולאה (כדי לא לשמור הכל בשם אחד)? וגם- אפשר ליצור קבצים יותר חסכוניים במקום מקבצי TXT ב-C?
 

DarkSwell

New member
תשובה..

תצרי קובץ חדש בתוך הלולאה, ושמו יהיה מורכב מ נניח tf ושרשרי את ערכו של ה counter שלך בלולאה ל tf. ואז יהיו לך קבצים בשמות tf1 tf2 tf3 tf4 . . .
 

Soleil du Matin

New member
איך אני משרשרת?

נניח אני פותחת קובץ "data.txt", איך אני גורמת לcounter להיות חלק ממנו? הרי אי אפשר לכתוב "datai.txt".
 

ilankt

New member
sprintf

char buff[32]; for (int i=0;i<100;i++) { sprintf(buff,"MyText %d.txt",i); //here you save the file, buff=filename }​
אני לא בטוח שככה עושים את זה, אבל תנסי
 

ilankt

New member
sprintf

char buff[32]; for (int i=0;i<100;i++) { sprintf(buff,"MyText %d.txt",i); //here you save the file, buff=filename }​
אני לא בטוח שככה עושים את זה, אבל תנסי
 

HaRmosh

New member
למשל כך:

N = number of files you want char *fname = "koko"; char *temp; for (i = 0; i < N; ++i) { strcpy(temp, fname); strcat(temp, itoa(i)); fopen(temp, "w"); }​
לא הרצתי את הקוד, אבל זה הרעיון.... אם יהיו בעיות תעלי לכאן. ועוד משהו, itoa היא פונקציה מ-stdlib.h, כך שצריך לכלול את הקובץ הזה, ואם את עובדת ב-VC 6++ להוסיף _ לפני שם הפונקציה.
 

DarkSwell

New member
ככה..

#define MAX 20 #define NAME "koko" char newName[6]; int i; File f; strcpy(newName,NAME); newName[5]=0; for(i=0; i<MAX; i++) { newName[4]=(0x30+i); f=fopen(newName,"w"); fclose(f); }
 
למעלה