我剛剛開始使用C++,並且正在研究codeval問題,所以如果有人這樣做,他們會認識到這個問題,因爲它是列表中的第一個。我需要打開一個具有3列空格分隔的整數值的文件。這是我的,在fizbuz.txt下。我需要從文件中獲取整數值並將其存儲起來,以便以後在程序中的其他地方使用。從文件中讀取整數數據
1 2 10
3 5 15
4 5 20
2 8 12
2 4 10
3 6 18
2 3 11
8 9 10
2 5 8
4 9 25
現在我可以打開文件了,我用getline()來讀取文件就好了,使用我的下面的代碼。但是,我不希望它們是字符串格式,我希望它們是整數。所以我環顧四周,每個人都基本上說相同的符號(文件>> int1 >> int2 ...)。我已經寫了一些代碼,就是我在幾個例子中看到的,並不像他們告訴我的那樣。
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
string filename = "fizbuz.txt";
string line;
int d1,d2,len;
int i =0;
int res1[10], res2[10], length[10];
ifstream read (filename.c_str());
if (read.is_open())
{
// while(read>>d1>>d2>>len);
// {
// res1[i] = d1;
// res2[i] = d2;
// length[i] = len;
// i++;
// }
while (!read.eof())
{
read>>d1>>d2>>len;
res1[i] = d1;
res2[i] = d2;
length[i] = len;
}
read.close();
}
else
{
cout << "unable to open file\n";
}
for (int j = 0; j < 10;j++)
{
cout<< res1[j] << " " << res2[j] << " " << length[j] << '\n';
}
}
這兩個while循環都在底部的輸出函數中執行相同的操作。 fizbuz.txt的最後一行將返回到res1,res2和length的第一個元素,並且所有3的其餘元素都是psuedorandom值,可能來自任何使用該內存塊的程序。下面
4 9 25
32767 32531 32767
-1407116911 4195256 -1405052128
32531 0 32531
0 0 1
0 1 0
-1405052128 807 -1404914400
32531 1 32531
-1405054976 1 -1404915256
32531 0 32531
你忘了'我++' – 2015-04-03 07:13:34
我在這種情況下做了什麼? – NathanielJPerkins 2015-04-03 07:14:22
@Thallazar你應該可能得到[好書](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)。 – molbdnilo 2015-04-03 07:15:54