لطفا وارد شوید یا ثبت‌نام کنید تا به انجمن‌ها دسترسی کامل داشته باشید.



 
امتياز موضوع :
  • 0 رأي - معدل امتيازات : 0
  • 1
  • 2
  • 3
  • 4
  • 5
خوندن و نوشتن رشته فارسي از/در فايل
2010-03-05, 09:49 PM,
ارسال : #1
خوندن و نوشتن رشته فارسي از/در فايل
سلام دوستان.

من يه تابع نوشتم براي كار با كاراكترهاي فارسي. ورودي اون رو يك رشته wstring گرفتم. خروجيش هم از همون نوعه. براي تست اين تابع يك رشته از همون نوع گرفتم و مقداردهي اوليه كردم، همه چيز درست كار ميكرد. اما وقتي ميخوام اون رشته رو از يك فايل بخونم نميتونم. كسي ميتونه راهنمايي كنه؟ در حقيقت من دنبال اين هستم كه ببينم چه جوري ميشه يك رشته فارسي رو از يك فايل خوند و در يك متغير از نوع wstring ذخيره كرد.
اگه ممكنه بگيد در انتها براي كپي كردن اين رشته توي فايل چي كار بايد بكنم؟
اين رو هم بگم كه من توي C++‎ استاندارد كد ميزنم.

لطفا اگه امكان داشته باشه يه برنامه كامل برام بزارين كه محتويات يك فايل فارسي رو بگيره بريزه توي يك متغير wstring وبعد محتويات اون رشته رو بريزه توي يه فايل ديگه؟
در ضمن من براي خروج اطلاعات برنامم رو اينجوري نوشتم:

کد :
int main()
{
    wifstream inFile("in.txt",ios::in,ios::binary);
    wofstream outFile("out.txt",ios::out,ios::binary);

        wstring wstrIn=L"سلام";
    const wchar_t *c_str1 = wstrIn.c_str ( );
        outFile << c_str1 ;
        
getch();

return 0;
}
وقتي اين برنامه رو اجرا ميكنم توي فايل خروجي هيچي وجود نداره و سايزش رو 0 ميزنه. اما اگه به جاي رشته سلام بنويسم salam مشكل حل ميشه و برنامه درست كار ميكنه.
واسه خوندن هم مشكل دارم. وقتي محتويات متغير wstrIn رو چك ميكنم (بعد از اينكه محتويات فايل ريخته شد توي اون) يه مشت كاراكتر بي معني رو مشاهده ميكنم. حسابي گيج شدم. در ضمن من ميخوام فايل رو خط به خط بخونم. ولي ديگه نميدونم اين رو كجاي دلم بزارم...؟

فقط تو رو خدا زود جواب بديد. قضيه خيلي فوريه.
ممنون.
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2010-03-05, 10:26 PM,
ارسال : #2
پاسخ: خوندن و نوشتن رشته فارسي از/در فايل
نمیدونم جواب بده یا نه ولی به امتحانش می ارزه.
هم سورس برنامه و هم فایل ورودی را با انکودینگ ISO 10646 ذخیره کن شاید حل بشه.
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2010-03-05, 11:21 PM,
ارسال : #3
پاسخ: خوندن و نوشتن رشته فارسي از/در فايل
چرا برنامت رو کامل نذاشتی پس؟
منظورم بخش اینکلود فایلهای هدر هست.
نقل قول این ارسال در یک پاسخ
2010-03-06, 12:48 AM,
ارسال : #4
پاسخ: خوندن و نوشتن رشته فارسي از/در فايل
توابع و کلاس‌هایی که در ابتدای آنها w وجود دارد مثل wstring یا wfstream یا ... همگی با استاندارد utf-16 (یا utf-32) کار می‌کنند. در حالیکه در سیستم‌عامل گنو/لینوکس بطور گسترده از utf-8 استفاده می‌شود. استفاده از utf-8 مزایای بسیاری دارد از جمله سازگاری با برنامه‌ها و کدهای نوشته شده برای ASCII و ... برای کار با رشته‌ها و متن‌های utf-8 نیازی به کار خاصی نیست. بطور مثال توسط همان کلاس fstream یا string و ... می‌توانید با متن‌های فارسی هم کار کنید. تنها اگر بخواهید متن را تغییر دهید (یا طول واقعی متن را بگیرید) ممکن است به مشکل بر بخورید که در اینصورت می‌توانید از کتابخانه‌ی glib برای این منظور استفاده کنید. اگر هم علاقه‌ای به استفاده از utf-8 ندارید و می‌خواهید از همان utf-16 (یا utf-32) در گنو/لینوکس استفاده کنید، باید فایل بصورت utf-16 (یا utf-32) ذخیره شده باشد تا توسط دستور wifstream قابل خواندن باشد.

وب‌نوشت رایانه‌دوست؛ جزء کوچکی از اجتماع کاربرهای گنو/لینوکس
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ


رفتن به انجمن :


کاربران در حال مشاهده موضوع : 1 مهمان