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();
}
می خواستم بدونم مشکل این برنامه چیه یا اینکه بهتره بگم چه طوری حل میشه.
این برنامه اعداد درون یک فایل و تعداد اونها رو نمایش میده بعد مرتب می کنه و در یک فایل دیگه میریزه. مشکل این برنامه به خاطر دستور 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();
}