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?