واضح آرشیو وب فارسی:سایت ریسک: Ho$∑∫N24-08-2008, 08:17 AMدوستان من می خوام در c++ با فایل ها کار کنم. می خوام برنامه ای بنویسم که بتونه داده هایی رو به صورت یک فایل متنی دریافت کنه و یا داده هایی رو به صورت فایل متنی ذخیره بکنه. من فقط میدونم که باید از fstream استفاده کنم ولی با توابع این کتابخانه آشنایی ندارم اگه میشه لیست از توضیحات و طریقه ی استفاده این توابع ارائه کنید خیلی ممنون میشم. sin66x24-08-2008, 10:28 AMبرای کار با فایلها باید اول یه اشاره گر به فایل تعریف کنی که به خونه های دیسک (مثلا هارد) دسترسی داشته باشی برای این کار بنویس !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! حالا fp یک اشاره گر به فایله. باید مقدار دهی شه برای این کار باید یک فایل رو باز کنی (چه برای خواندن چه برای نوشتن) مثلا اینجا فایل C:Text.txt رو برای نوشتن/خواندن باز می کنیم: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! خوب الان فایل درست شده و آمادست که توش بنویسیم. برای نوشتن از توابع زیر: fputc,fprintf,fwrite استفاده کنید و برای خواندن اطلاعات از: fgetc,fscanf,fread برای دانستن الگوی فایلها از help خود سی پلاس استفاده کنید اگر کمکتون نکرد که در مورد تابع ها هم توضیح بدم. اما کلا fprintf خیلی شبیه fprint خودمونه با این تفاوت که آرگومان اولش باید یه اشاره گر به فایل (کلا استریم، میتونه به پورت LPT و ... هم اشاره کنه) باشه. مثلا: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! نکته مهم اینه که fopen ممکنه نتونه فایل رو باز کنه اونوقت fp که مقدار نامعلومی داره ممکنه به هار یا سایر سخت افزارات آسیب برسونه پس قبل از شروع کار چک کن که آیا fopen آدرس یک فایل رو برگردونده یا مقدار NULL (که در صورت باز نکردن فایل برمیگردونه) این کار اینجوری انجام میشه: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! باز هم اگه سوالی بود در خدمتیم اما توی همه کتابهای C این مسئله هست. بهتره خودتون بخونین و با همه جنبه های کار با فایل آشنا بشید. Ho$∑∫N24-08-2008, 12:44 PMمن کتاب دیتل رو می خونم چاپ ناقوس ولی این آموزش توش نبود. اما در هر حال شما آموزش رو کامل به من دادید خیلی ممنون! hoax3r24-08-2008, 02:59 PMدر مورد C جناب sin66x کامل توضیح دادن و در مورد ++C این سایت رو میتونین ببینین !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! شاد باشید Ho$∑∫N25-08-2008, 08:22 AMمن جزوه ی جناب hoax3r رو مطالعه کردم ولی وقتی خواستم برنامه بنویسم کامپایلر ارور داد. من برای نام فایل از یک متغییر string استفاده کردم ولی وقتی خواستم با تابع open فایل رو بسازم و متغییرم رو به عنوان آرگومان به تابع ارسال کردم کامپایلر ارور داد بعد تصمیم گرفتم با استفاده از تعریف یک آرایه رشته ای این کار رو انجام بدم و به جای تابع getline از cin استفاده کنم که اینکار جواب داد. بعد کدی نوشتم که از کاربر درخواست کنه متنی رو به عنوان محتوای فایل دریافت کنه برای همین از یک متغییر string استفاده کردم و بعد از اون تابع getline رو به منظور ورود اطلاعات به متغییرم تعریف کردم و در آخر دستورات ایجاد فایل رو نوشتم و بعد getch() و سپس مقدار بازگشتی main و تمام. اما وقتی که برای وارد کردن نام فایل از آرایه استفاده کردم زمانی که می خواستم محتوای فایلم رو وارد کنم با فشردن اولین کلید از برنامه خارج می شد وقتی تابع getch() رو پاک کردم برنامه بلافاصله بعد از وارد کردن نام فایل بسته می شد و فقط یک فایل با محتوای خالی و حجم 0 کیلوبایت ایجاد می شد. چگونه می تونم این مشکل رو حل کنم؟ کدی که نوشتم : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! hoax3r25-08-2008, 10:25 AMمن جزوه ی جناب hoax3r رو مطالعه کردم ولی وقتی خواستم برنامه بنویسم کامپایلر ارور داد. من برای نام فایل از یک متغییر string استفاده کردم ولی وقتی خواستم با تابع open فایل رو بسازم و متغییرم رو به عنوان آرگومان به تابع ارسال کردم کامپایلر ارور داد بعد تصمیم گرفتم با استفاده از تعریف یک آرایه رشته ای این کار رو انجام بدم و به جای تابع getline از cin استفاده کنم که اینکار جواب داد. بعد کدی نوشتم که از کاربر درخواست کنه متنی رو به عنوان محتوای فایل دریافت کنه برای همین از یک متغییر string استفاده کردم و بعد از اون تابع getline رو به منظور ورود اطلاعات به متغییرم تعریف کردم و در آخر دستورات ایجاد فایل رو نوشتم و بعد getch() و سپس مقدار بازگشتی main و تمام. اما وقتی که برای وارد کردن نام فایل از آرایه استفاده کردم زمانی که می خواستم محتوای فایلم رو وارد کنم با فشردن اولین کلید از برنامه خارج می شد وقتی تابع getch() رو پاک کردم برنامه بلافاصله بعد از وارد کردن نام فایل بسته می شد و فقط یک فایل با محتوای خالی و حجم 0 کیلوبایت ایجاد می شد. چگونه می تونم این مشکل رو حل کنم؟ کدی که نوشتم : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! قبل استفاده از getline این دستور رو وارد کن مشکل حل میشه !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! شاد باشید Ho$∑∫N25-08-2008, 10:28 AMحالا کاربرد این دستور چیه؟ hoax3r25-08-2008, 03:09 PMنمیدونم:31: ، فقط میدونم تو این حالت کار آدمو راه میندازه:20: sin66x25-08-2008, 07:24 PMسلام آره حق با شماست من برای C گفتم، چون توی توربو کد می نویسم زیاد قرو قاطی کد میزنم از هر دوشون استفاده می کنم :)) اما در مورد sync: این تابع گنجایش بافر درونی استریم رو با محل حافظش تنظیم میکنه. اینجا این تابع از صف استاندارد کاراکترها، کاراکتری رو که خونده نشده باشه پاک میکنه! اما نمی دونم چرا بدون این دستور نباید جواب بگیریم! Ho$∑∫N26-08-2008, 08:26 AMهمین چیزاست که آدم به برنامه نویسی میل نشون میده چون خیلی پر پیچ خمه به نظر من : برنامه نویسی دنیایی پر از ترفند هاست ! Ho$∑∫N26-08-2008, 08:44 AMمن تصمیم گرفتم پس از یادگیری کار با فایل ها یه برنامه درفترچه تلفن اساسی بنویسم :8: .چون همونطور که می دونید چندتا برنامه دفترچه تلفن توی انجمن بود که دوستان نوشته بودند وقتی اطلاعات جدیدی رو وارد می کردی ذخیره می کرد ولی فقط تا زمان اجرای برنامه وقتی از برنامه خارج می شدی و دوباره وارد می شدی اطلاعات از دست می رفت حالا من می خوام این برنامه رو با قابلیت ذخیره ی دائم بر روی هارد دیسک بنویسم و الان هم کمی از برنامه رو نوشتم (قسمت ذخیره برنامه رو) در ضمن برای صفحه ی اصلی و اولیه برنامه نتونستم از gotoxy استفاده کنم مجبور شدم از space استفاده کنم به صورت آماتوری :31: . حالا شما ببینید برنامه تا الان چطوریه قسمت about برنامه رو هم هنوز تابعش رو ننوشتم برای همین تو case 3 هیچ دستوری رو برای فراخوانی تابعم صادر نگردم |توجه اگه کمی به کد برنامه دقت کنید متوجه عملکرد جالبش میشید! البته قسمت ذخیره هم جای کار داره که در آینده اون رو هم تغییر می دم|کد برنامه : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! Ho$∑∫N27-08-2008, 07:44 AMدوستان عزیز برنامه کامل شد برای کمک به من در امر خطایابی این برنامه به تاپیکی که می زنم مراجعه کنید توی انجمن c. gigamax27-08-2008, 02:40 PMجالبه . من خیلی دنبال این کار می گشتم . مرسی دوست من .:20::31: راستی مشکلت با gotoxy چیه؟ اگر از .net استفاده میکنی ، gotoxy نداره و باید تابعشو بنویسی اینم تابعش . امیدوارم به دردت بخوره !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! Ho$∑∫N29-08-2008, 08:01 AMخیلی ممنون مشکل منو حل کردید. سپاسگزارم z_V_6613-12-2008, 02:05 PMسلام من باید دفترچه تلفن را به زبان سی پلاس پلاس بنویسم ، اما این زبان را در حد اشاره گرها میدونم ، دو کتاب دایتل اند دایتل وجعفرنژاد قمی گرفتم ولی نمیدونم کدوم قسمتش را برای نوشتن این برنامه بخونم ؟ لطفا اگر ممکنه منو سریعتر راهنمایی کنید وقت خیلی کم دارم برای این برنامه ! سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 2817]