Re: [问题] C++ 从文字档读数据

楼主: tyjh (....)   2019-03-19 21:07:53
档案可顺利读取了 但
想问的是 如何在
读档后 可以知道 总共有几个数写入矩阵
也就是下面的 n值
如何修改写法 @@
#include <fstream> // 加载fstream标头档
#include <iostream>
#include <cstdlib>
using namespace std;
int main(void)
{
float A[8];
int n;
float tmp;
ifstream ifile("test1.txt",ios::in);
if(ifile.is_open())
{
for(int i=0;i<8;i++)
{
ifile >> A[i];
}
}
else
cout << "档案开启失败..." << endl;
n=sizeof(A)/sizeof(A[0]);
cout<<"个数:"<<n<<endl;
cout<<"排序前:"<<endl;
for(int i=0;i<8;i++){
cout<<A[i]<<endl;
}
cout<<"排序后:"<<endl;
for(int i=0;i<n-1;i++){
for(int j=0;j<n-1-i;j++){
if(A[j]>A[j+1]){
tmp=A[j];
A[j]=A[j+1];
A[j+1]=tmp;
}
}
}
for(int i=0;i<n;i++){
cout<<"A["<<i<<"]="<<A[i]<<endl;
}
cout<<"最大值:"<<A[n-1]<<endl;
cout<<"最小值:"<<A[0]<<endl;
ifile.close();
return 0;
}
作者: zamperla (地鼠王)   2019-03-20 00:11:00
你可以在ifile >> A[i] 的那个循环内写个sum计算有读入几次
作者: sarafciel (Cattuz)   2019-03-20 01:15:00
google std::vector把你的循环条件改EOF 然后把你读到的东西都丢进vector再去call size()出来就有数量了
作者: loveme00835 (发箍)   2019-03-20 04:00:00
range style https://bit.ly/2Jn6lp7 不用谢你确定不去好好读完书才来写吗? 看起来不是一两章就能涵盖的东西
楼主: tyjh (....)   2019-03-20 10:15:00
感谢 因为想先确定这方法可不可行才急着问
作者: loveme00835 (发箍)   2019-03-20 14:25:00
那你知道档案里数字数目不定的时候,该怎么办吗?拿掉读档, 用 cin 你会不会做? 这明显不是方向问题
楼主: tyjh (....)   2019-03-20 15:02:00
楼上请稍指点下囉
作者: jxzhe   2019-03-20 23:13:00
好像可以在读之前用seekg找end 就知道大小了

Links booklink

Contact Us: admin [ a t ] ucptt.com