Ragazzi ho preferito usare il primo metodo...
se vi serve la classe eccola:

praticamente ad ogni passo basta chiamare il metodo step(); per visualizzare il carattere successivo contenuto nel vector l; fino a quando non viene chiamato il metodo end();

in questo caso visualizzerà la sequenza
\
|
/

codice:
#include <iostream>
#include <vector>
#include <string>
using namespace std;

class Loading{
public:
	inline Loading(){l.push_back('\\');l.push_back('|');l.push_back('/'); i=0;init="Caricamento... ";done="completato.";}
	inline ~Loading(){}
	inline void step() {if (i>0) cout << '\b'; else cout <<init; cout << l[i%l.size()];i++;}
	inline void end(){cout << '\b' << done;}
private:
	vector<char> l;
	int i;
	string init;
	string done;
};


int main() {

	Loading *bar = new Loading();
	while(1) {
		bar->step();
		//> Operazioni da svolgere...
	}
	bar->end();
	
	cout << endl;
	return 0;
}