PDA

View Full Version : دستور seekp - خطای منطقی



programmer.z
جمعه 23 اردیبهشت 1390, 17:16 عصر
سلام
می خواستم بدونم مشکل این برنامه چیه یا اینکه بهتره بگم چه طوری حل میشه.
این برنامه اعداد درون یک فایل و تعداد اونها رو نمایش میده بعد مرتب می کنه و در یک فایل دیگه میریزه. مشکل این برنامه به خاطر دستور z.seekp(0) هست اما نمیدونم چرا؟

این هم متن برنامه:

#include <iostream>
#include <conio>
#include <fstream>

void main()
{
int c=0,n;
fstream z("D:\\ab.txt",ios::in);
if(z==NULL) cout<<"File not open!";
while(1)
{
z>>n;
if(z.eof()==true) break;
cout<<n<<endl;
c++;
}

cout<<"Counter number: "<<c;
z.seekp(0);

int *p=new int[c];
for(int i=0;i<c;i++)
{
z>>n;
p[i]=n;
}
for(int i=0;i<c;i++)
for(int j=i+1;j<c;j++)
if(p[i]>p[j])
{
p[i]+=p[j];
p[j]=p[i]-p[j];
p[i]-=p[j];
}
z.close();

z.open("D:\\temp.txt",ios::out);
for(int i=0;i<c;i++)
z<<p[i]<<endl;
z.close();
getch();
}

programmer.z
جمعه 30 اردیبهشت 1390, 04:05 صبح
سلام
خودم جواب خودم رو میدم:چشمک: این مشکل از خود کامپایلر است که در چنین مواقع به دستور seekp پاسخ نمیدهد.