Lite STL att leka med
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
int main(){
ifstream file("filnamn.txt");
vector<string> vec;
copy(istream_iterator<string>(file),
istream_iterator<string>(),
back_inserter(vec));
for(vector<string>::iterator iter = vec.begin(); iter != vec.end(); iter++)
cout << *iter << endl;
return 0;
}
Jag är osäker på copy(), den kan kräva att algorithm inkluderas.
Iallafall, förklaringar:
ifstream file("filnamn.txt") skapar ett objekt av typen ifstream (in file stream) och försöker öppna filen.
vector<string> vec skapar en vectkr som innehåller stängar (c++stängar).
copy(...) tar två st. input iterators och en output iterator som indata, de två input iteratorerna säger start och slut för det område som ska itereras, output interatorn säger vart varje data i det området ska skickas.
istream_iterator<string> är en iterator över en ström (en fil eller cin t.ex.) som returnerar en string (bryter på whitespace vad jag vet). skapas den med en stöm som argument är den giltig, annars inte.
back_inserter(vec) är en output iterator som lägger till ett objekt längst bak på vec.
for(vector<string>::iterator iter = vec.begin(); iter != vec.end(); iter++) itererar över hela vektorn.
[EDIT] MSVC 6 är nog inte att rekommendera om man vill leka lite mer avancerad c++ och STL. Den kan kompilera helt åt skogen ibland
Detta är c++, inte c. Men visst går det bra att använda gamla c-funktioner i c++ också, man ska bara se till att inkudera rätt headers (inte stdio.h utan cstdio t.ex.)