פורסם 2007 במרץ 1418 שנים יש לי את התכנית הבאה(צריכה להדפיס שורות מקובץ בתחום מסוים): משום מה זה מדפיס לי כל פעם אותה שורה. מה הטעות?#include <iostream>#include <conio.h>#include <fstream>using namespace std;char* f(int choice, int line){ ifstream file; if(choice==1) { file.open("1.txt"); } else { file.open("2.txt"); } char *s= new char[256]; int moneLine =0; if(!file.eof()) { file.seekg(line); file.getline(s,256); } file.close(); return s;}void main(){ int choice, begin, end, line; char*str = new char[256]; cin>>choice; cin>>begin; cin>>end; line = begin; while(line<=end) { str = f(choice,line); line++; puts(str); } getche();}
פורסם 2007 במרץ 1418 שנים אני מניח כי seekg מקבל את המיקום באותיות ולא בשורות...וגם יש לך דליפה רצינית, את עושה new כל הזמן, אבל לא עושה delete אחרי ההדפסה.
פורסם 2007 במרץ 1418 שנים אם את רוצה לעבוד ככה, את יכולה לקרוא שורה מהקובץ. לשמור את הגודל שלה + של השורות הקודמות באיזה משתנה ואז בפעם הבאה לעשות seek למיקום של המונה הזה + כמה בתים נוספים (נראה לי 2)
פורסם 2007 במרץ 1418 שנים מחבר מה האופציה האחרת???<בטח היא פשוטה יותר! אם אני רוצה להגיע לשורה 20 אני צריכה לספור 19 שורות? לא נראה לי הגיוני, אין קפיצה ישירה יותר?>
פורסם 2007 במרץ 1418 שנים שיטה נורמלית היא לא לסגור את הקובץ כל פעם ולפתוח אותו מחדש...פשוט קוראים שורה.. ואז עוד שורה.. וכו'..
פורסם 2007 במרץ 1418 שנים מכיוון שאורך שורה הוא לא קבוע, ותווי ירידת השורה ממוקמים בצורה רנדומאלית, את חייבת לעבור שורה שורה.
פורסם 2007 במרץ 1418 שנים strlen ?צריך להוסיף גם איזה בית של שורה חדשה שנראה לי הוא מוחק.גם את חשאית לגבי מסגרת הקורסים שאת עושה, או שאת יכולה להגיד לשם מה זה ?
פורסם 2007 במרץ 1418 שנים תקראי את זה:http://www.cplusplus.com/reference/iostream/istream/getline.html
פורסם 2007 במרץ 1518 שנים מחבר איך פותחים קובץ חדש לכתיבה??? OPEN? מה הפונקציה הזו מקבלת?אם המשתמש צריך לבחור את שם הקובץ-> איך עושים את זה?
פורסם 2007 במרץ 1518 שנים תקראי את http://www.cplusplus.com/doc/tutorial/files.htmlהפונקציה מקבלת את שם הקובץ...באחד מהדיונים הקודמים שלך כתבתי קוד יפה שמקבל את שם הקובץ כפרמטר.
פורסם 2007 במרץ 1518 שנים מחבר הסתכלתי בקובץ הזה, אבל- מה אני עושה אם המשתמש צריך לבחור את שם הקובץ (נגיד לתוך המחרוזת STR אני לא יכולה לרשום את זה fl.open("str.txt"))
פורסם 2007 במרץ 1518 שנים אם המחרוזת מוגדרת כ char * אז את פשוט צריכה להעביר אותה כמו שהיא fl.open(str) אם היא מוגדרת כ string יכול להיות שצריך לעשות המרה ל char * לפני.אם את רוצה להוסיף לסוף שלו .txt תשתמשתי בפונקציה strcat.את לומדת את זה בבית ספר ?
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.