Hvis du vil læse strenge med mellemrum skal du bruge getline:
#include <iostream>
#include <fstream>
#include <sstream>
#include <iomanip>
#include <string>
using namespace std;
template <typename T>
bool FromString(T &aValue, const std::string &aStr)
{
std::stringstream ss(aStr);
return ss >> aValue;
}
int main()
{
string navn;
string Temp;
int nummer;
string pass = "huladula";
string pass2;
cout <<"Skriv password!" << endl;
getline(cin, pass2);
if(pass2==pass)
{
cout <<"Dan Bjoler's tlf bog!" << endl;
cout <<"skriv navn og nummer." << endl << endl;
getline(cin, navn);
getline(cin, Temp);
FromString(nummer, Temp);
cout << endl << endl;
std::ofstream Fil("fil.txt", std::ios::app);
Fil << navn << std::endl << nummer << std::endl;
Fil.close();
}
std::ifstream In("fil.txt");
bool Ok = true;
do
{
getline(In, navn);
getline(In, Temp);
if(In)
{
FromString(nummer, Temp);
std::cout << navn << " " << nummer << endl;
}
else
{
Ok = false;
}
}
while(Ok);
system("pause");
return 0;
}
Du skal så indtaste Navn og Nummer på to seperate liner.
Du skal også slette fil.txt, da de navne der står i den står forkert, de skal stå med navn og nummer på seperate linier.