Suppose $f$ is a real-valued function, with $f(x+y)=f(x)+f(y)$, show that $f$ can be written as $f(x)=\lambda x$ For the following question I'm getting stuck on a proof. Below I've just written out all the things/steps I've tried (even if they might be wrong). Could someone steer me in the right direction?

Suppose $f$ is a real-valued function $f:\mathbb{R}\to\mathbb{R}$,
  which is continuous at $0$, with the property
  $\forall_{x,y\in\mathbb{R}}:f(x+y)=f(x)+f(y)$. Show that
  $\exists_{\lambda\in\mathbb{R}}\forall_{x\in\mathbb{R}}:f(x)=\lambda
 x$.

So far I've found that $f(0)=0$, as $f(x+0)=f(x)+f(0)=f(x)$.
As $f$ is continuous at $0$:
$$\forall_{\epsilon >0}\exists_{\delta >0}:|x-0|<\delta\implies|f(x)-f(0)|<\epsilon \ \ \iff \ \ \ |x|<\delta\implies|f(x)|<\epsilon$$
I suspect that $f|x|=|f(x)|$, which I have yet to prove or find. I'm also afraid the next step I tried is illegal: $|x|<\delta\implies f|x|<f|\delta|$, cause this way, you can compare it to $\epsilon$ by $|f(x)|=f|x|$. This didn't really take me anywhere but I thought I'd just write out everything I tried so far.
I also though that $f$ is continuous everywhere: $f(x-y)=f(x)-f(y)$ gives:
$$|x|<\delta\implies|f(x)|<\epsilon \ \ \iff \ \ \ |a-b|<\delta\implies |f(a-b)|=|f(a)-f(b)|<\epsilon$$
as we substitute $x=a-b$ for arbitrary $a,b\in\mathbb{R}$.
 A: Outline:
Let $\lambda = f(1)$
1) Since $f(x + y) = f(x) + f(y)$ then prove for any $r \in \mathbb Q$ then $f(r) = r*f(1) = r*\lambda$. (This follows inductively.)
2)  Since $f$ is continuous prove that $f(x) = x*f(1) = x*\lambda$ by considering a sequence of rations $q_i \to x$.  As $f$ is continuous $f(x) = \lim f(q_i) = \lim q_i*\lambda = \lambda * \lim q_i = \lambda x$.
.... to put it simply...
$\mathbb Q$ is the smallest ordered field.  $\mathbb Q$ is generated inductively from $1$.  As $f(x+y)= f(x) + f(y)$ we can generate a field from $f(1)$ where $f(q) = q*f(1)$.  
However we can't generate any "larger" field from thes alone as for $x \not \in \mathbb Q$ we can not get any linear combination of rationals to result in $x$.
But the way we construct the reals from the rationals is to let $\mathbb R$ have the least upper bound property so $\mathbb R = \mathbb Q \cup \{$ all possible limits of cauchy sequences of rational numbers$\}$.
By requiring $f$ to be continuous we must have $\lim f(q_i) = f(\lim q_i) = f(x)$ for any cauchy sequence $q_i \to x$.  So the forces us to extend our field for $\langle q*f(1)\rangle; q \in \mathbb Q$ to $\langle x*f(1) \rangle; x \in \mathbb R$.
Okay, maybe that wasn't "simply" but that was the ... "gist".
========
Pf:
1)  $f(0) = f(0+0) = f(0) + f(0)$ so $f(0) - f(0) = f(0) + f(0) = f(0)$ so $0 = f(0)$.
$0 = f(x + (-x)) = f(x) + f(-x)$ so $f(-x) = -f(x)$ for all $x\in \mathbb R$.
For $n \in \mathbb N$ then $f(nx) = f(x+x+x+...+x) = f(x) + f(x) + f(x)+...+f(x) = n*f(x)$ and $f(n) = f(n*1) = n*f(1) = \lambda n$.
For $a,b \in \mathbb N$ then $f(\frac ab) = f(a*\frac 1b) = a*f(\frac 1b)$ and $b*\frac{1b} = f(\frac 1b) + .... + f(\frac 1b) = f(\frac 1b + \frac 1b + ....+\frac 1b) = f(b*\frac 1b) = f(1) = \lambda$ so $f(\frac 1b) = \frac {\lambda}b$ and $f(\frac ab) = a*f(\frac 1b) = \frac ab*\lambda$.
So for $q \in \mathbb Q$ then $f(q) = q*\lambda$.
2)Let $x$ be irrational.  Then there exists a sequence of $q_i$ so the $q_i \to x$ as $i \to \infty$ (that's the definition of the reals).  And $f$ is continuous so $f(x) = \lim_{i\to \infty} f(q_i) = \lim_{i\to\infty}q_i*\lambda = \lambda \lim_{i\to \infty} q_i = \lambda*x$.
A: It is clear that any function of the form $f(x)=\lambda x$ satisfies $f(x+y)=f(x)+f(y)$ and $\lim_{x\to 0}f(x)=f(0)$. Now let $f:\mathbb{R}\to\mathbb{R}$ be such that these two conditions hold. It is not difficult to see that: $f(0+0)=f(0)+f(0)\Rightarrow f(0)=0$ and that for $x+y=0$ we have $f(x+y)=f(0)=f(x)+f(-x)\Rightarrow f(-x)=-f(x)$ hence $f(x)$ is an odd function. Moreover $$f(2x)=f(x+x)=f(x)+f(x)=2f(x)$$
and in general one can show by induction that $$f(nx)=f(x)+f((n-1)x)=f(x)+(n-1)f(x)=nf(x)$$
whenever $n\in\mathbb{N}$. Analogue for negative integers using that $f(x)$ is odd function by induction then
$$f(-nx)=f(-x)+f(-(n-1)x)=-f(x)-(n-1)f(x)=-nf(x)$$
We can extend this identity $f(nx)=nf(x)$ for $n\in\mathbb{Z}$ to rationals as well. Just let $x=y/n$ to obtain 
$$f(ny/n)=nf(y/n)\Rightarrow f(y)=nf(y/n)\Rightarrow \frac{m}{n}f(y)=mf(\frac{y}{n})=f(\frac{m}{n}y)$$
where $m\in\mathbb{Z}$ and the last equality follows from the main identity $f(nx)=nx$ when $n\in\mathbb{Z}$. But $m/n\in\mathbb{Q}$ was arbitrary so indeed we have $f(qx)=qx$ for all $q\in\mathbb{Q}$. But $\mathbb{Q}$ is dense in $\mathbb{R}$. Let $r\in\mathbb{R}$ then there exists a sequence $(q_k)\subset\mathbb{Q}$ such that $\lim_k q_k=r$. But $f(q_kx)=q_kx$ for all $k$ so $\lim_kf(q_k x)=\lim_k(q_kx)=x\lim_kq_k=rx$. Continuity of $f$ implies $\lim_kf(q_kx)=f(\lim_kq_kx)=f(rx)$ hence $f(rx)=rf(x)$ for all $r\in\mathbb{R}$. Together with the condition $f(x+y)=f(x)+f(y)$ for all $x,y\in\mathbb{R}$ implies that indeed $f$ is a linear function (often these two conditions are used as a definition for linear functions, operators etc.). So there exists some $\lambda\in\mathbb{R}$ such that $f(x)=\lambda x$ and $\lambda=f(1)$.
