0
我有一幫由換行分隔的數字的文本文件,如: 123.25 95.12 114.12等等的fstream的函數getline()的作品一點點......然後突破
的問題是,當我的程序讀取它時,它只會將數字複製到數組中,直到第二個數字,然後用零填充其餘的元素。我試過使用分隔符和忽略語句,但沒有任何工作。這是代碼。
編輯(這裏的整個程序:)
#include <iostream>
#include <string.h>
#include <iomanip>
#include <fstream>
using namespace std;
struct utilityInfo
{
char utility[20];
double monthlyExpenses[12];
};
int main(){
utilityInfo Utility[3];
char charray[100];
fstream inFile;
inFile.open("expenses.txt");
inFile.getline(charray, 7);
cout<<charray<<endl;
if(inFile.fail()) cout<<"it didnt work";
for(int i=0; i<12; i++)
{
inFile.getline(charray,20);
Utility[0].monthlyExpenses[i]=atof(charray);
}
for(int z=0; z<12; z++)
{
cout<<Utility[0].monthlyExpenses[z]<<endl;
}
inFile.close();
return 0;
}
下面是該文本文件的樣子:
207.14
177.34
150.55
104.22
86.36
53.97
52.55
58.77
64.66
120.32
153.45
170.90
而這裏的輸出是什麼樣子:
207.14
177.34
0
0
0
0
0
0
0
0
0
0
文件內容是什麼樣的? – josephthomas 2012-04-08 17:26:42
您可能會檢查失敗並在'for(i)'循環中打印每個值。 – 2012-04-08 17:28:04
你也可以粘貼輸出嗎? – vaisakh 2012-04-08 17:29:46