c++中关于文件读取的问题

我想从文件中读取元素,元素中既有int型又有char型,然后再将这段元素输出
比如文件中的元素是2 3 5 * + 10 2 / -
我想将文件中的元素读取后再输出它们,但我不知道这段代码错在哪里
ifstream in;
in.open("E:/c.txt");
int a;
char b;
while(!in.eof())
{while(in>>a)
cout< in.clear();
in>>b;
cout<<b<<" ";
}
恳请各位大神指点,最好能指出错误,并将正确的代码写一下,十分感激!

#include <iostream>
#include <fstream>
#include <stdlib.h>
using namespace std;

int main()
{
    FILE *fp;
    if(fp=fopen("E:/c.txt","r"));
    char ch = fgetc(fp);
    while(ch != EOF)
    {
        if(ch >= 48 && ch <= 57)
        {
            int b = ch - 48; // 数字
            cout << b;
        }
        else
        {
            cout << ch; // 非数字
        }
        ch = fgetc(fp);
    }
    fclose(fp);
    return 0;
}

试试这个,上次那个是有点问题