Adding/changing ID3 tags to media files with "artist - title" format
Here are some things I see that may help you improve your code.

Add error checking

In your changeTag routine, a segfault can occur if there is no file. Add this just after the FileRef line:                                                                 

if(!file.isNull() &amp;&amp; file.tag()) {


Separate concerns

The code would be a little more clear if the changeTag routine was split into two parts. In particular, one could extract artist and title, and the other could apply those. It may also be reasonable to make extractFiles return the vector of errors rather than having it emit those errors to std::cout.  The calling program might be able to do something different with those, such as if it were a GUI.

Use command line parameters

Instead of prompting for a directory name, it would be better to have that as a command line parameter.  That would also simplify the control structure of your program as mentioned in the next comment.

Try to consolidate loop exit conditions at the top

Prefer a for loop with the actual exit condition to a while(true) loop.  Because the reader is forced to search for the loop terminating condition, it's more effort to understand the latter construct.  This code, for example could be structured like this:

int main() {
    std::string dir;
    std::cout &lt;&lt; "Directory: Enter 'x' to close: ";
    for (std::cin &gt;&gt; dir; dir != "x"; std::cin &gt;&gt; dir) {
        extractFiles(dir);
    }
}


This also eliminates a break statement.  A break can also contribute to difficulties understanding a loop because again, the programmer reading the code has to search for them.

Consider the user

It might be nice to have an option for a "dry run" of the program.  That is, have it print what it would have done without actually altering any files.  This would help the user have confidence that the program was doing only and exactly what was intended.