Это будет делать то, что вы хотите, но если вместо того, чтобы просто печатать содержимое файла, вы действительно хотите что-то с ним сделать и вам нужен текст в виде ASCII, вам нужно будет выполнить это преобразование самостоятельно из широких символов.
Поскольку этот конкретный файл представляет собой обычный текст букв и цифр, вы можете преобразовать широкую строку в узкую с помощью sprintf.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
system("wmic nic where (AdapterTypeId=0 AND netConnectionStatus=2) get MACAddress > macaddress.txt");
//Binary mode tells fgetws to read wide characters instead of multi-byte.
FILE * fp = fopen("macaddress.txt", "rb");
if (fp)
{
wchar_t buffer[500] = { 0 };
fread(buffer, 1, 2, fp); //read and discard BOM
while (fgetws(buffer, 500, fp))
{
// %ls means the parameter is a wide string.
// %S also works in Visual Studio
printf("%ls", buffer);
//Convert wide characters to ASCII
//This assumes the wide characters are all in the ASCII range
char ascii[500] = { 0 };
sprintf(ascii, "%ls", buffer);
printf("%s", ascii);
}
fclose(fp);
}
return 0;
}