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