Let's just indent that correctly and see if the problem becomes obvious:
Code:
cin.ignore();
while (true)
{
    cin >> op;
    if(strcmp(op, "open")== 0)
        fopen("g:\ccc\example.txt","r");
    break;
    else
        cout << endl << "Hint: open" << endl << "type again:" ;
}
So you have an unconditional break and an else without an if. The if is the primary expression (note it says EXPRESSION not BRACKET - read the messages!)

Don't forget whitespace is completely irrelevant to C; if you want an if to execute two statements, you MUST enclose them in braces:
Code:
    if(strcmp(op, "open")== 0)
    {
        fopen("g:\ccc\example.txt","r");
        break;
    }
Otherwise you end up confusing yourself and not being able to see what is wrong with stuff like
Code:
    if(strcmp(op, "open")== 0) fopen("g:\ccc\example.txt","r"); break;
- the break here is NOT conditional.

Indentation lesson learned?