PDA

View Full Version : مشکل این کد چیه؟



Tarrah
پنج شنبه 04 آبان 1385, 14:02 عصر
وقتی به صورت زیر می نویسم تو یه loop بی نهایت می افته



pfile.seekg(0,ios::beg);
while (!pfile.eof())
{
pfile.seekg(20);
while (ch!=',')
{
...
}
}


ولی این جوری مشکلی نداره.



pfile.seekg(0,ios::beg);
while (!pfile.eof())
{
for (j=0;j<20;j++)
pfile>>pass;
while (ch!=',')
{
...
}
}


چرا؟

mzjahromi
شنبه 06 آبان 1385, 07:15 صبح
اگه کد رو کاملتر بنویسید راحت تر میشه کنترل کرد. اینجوری معلوم نیست که شرط کدوم while محقق نمیشه

Tarrah
شنبه 06 آبان 1385, 10:32 صبح
مشکل تو همین seekg هست.کل کد مفصله.شما خودتون یه حلقه بنویسید و امتحان کنید فکر می کنم با مشکل من مواجه بشید.

mzjahromi
شنبه 06 آبان 1385, 13:13 عصر
خوب معلومه مشکل تو اینه
می خواستم ببینم جای دیگه Pointer فایل تغییر می کنه یا نه
خوب شما هر بار کرسر رو میبرید رو 20 و منتظر هستید که حلقه تموم بشه در حالیکه هیچ وقت کرسر از 20 تکون نمی خوره.-> برنامه هنگ میکنه

Tarrah
یک شنبه 07 آبان 1385, 01:00 صبح
متوجه نشدم.می شه بیشتر توضیح بدین؟

mzjahromi
یک شنبه 07 آبان 1385, 06:57 صبح
ببینید
در شرط زیر


while (!pfile.eof())

شما دارید میگید تا زمانیکه به آخر فایل نرسیدیم
از طرفی در خط زیر


pfile.seekg(20);

داری مکان نمای فایل رو میبری روی بایت 20
یعنی هیچ وقت به آخر فایل نمیرسی
در نتیجه هیچ وقت شرط خروج از حلقه که محقق نمیشه هیچ بلکه برنامه هم هیچ کار بدرد بخوری انجام نمیده و مدام یک کار رو تکرار میکنه

اگر باز دقیقتر میخوای کد رو کاملتر بنویس و بگو می خوای چیکار کنی