Это опечатка:
Вместо
scanf("&lf", &price);
должно быть
scanf("%lf", &price);
И вместо
printf("Price &lf Dollar", price);
должно быть быть
printf("Price %lf Dollar", price);
К сожалению, Вы не сможете сделать это без P/Invoking к собственному Windows API сначала.
Во-первых, необходимо будет открыть дескриптор файла с собственным вызовом P/Invoke. Это сделано функцией OpenFileById WINAPI. Вот то, как использовать его на MSDN, здесь является другой ссылкой, объясняя его подробно на форумах MSDN и здесь является некоторой справкой (pinvoke.net) о том, как создать Ваш вызов P/Invoke.
После того как Вы получили дескриптор файла, необходимо перенести его в SafeFileHandle, на этот раз в безопасный, управляемый C#:
// nativeHandle is the WINAPI handle you have acquired with the P/Invoke call
SafeFileHandle safeHandle = new SafeFileHandle(nativeHandle, true);
Теперь можно открыть поток файла непосредственно:
Stream stream = new FileStream(safeHandle, FileAccess.ReadWrite);
И от этой точки можно использовать его в качестве любого другого файла или потока в C#. Не забывайте располагать свои объекты, после того как Вы сделаны.