Сьогодні, під час практики програмування на мові C для моєї майбутньої екзаменації, я стикнувся з проблемою, використовуючи VisualStudio Code. Я працював над своєю першою програмою на мові C, що включала функції читання та запису файлів. До цього моменту VisualStudio Code був моїм основним редактором для всіх моїх програм на мові C, і я ніколи не зіткнувався з серйозними проблемами.
Проте, коли я намагався виконати програму за допомогою gcc.exe, я стикнувся з непередбачуваною поведінкою. Замість очікуваного результату у терміналі, відкривався новий вкладка з назвою “Code”, що відображала наступне повідомлення:
1 |
PS C:\Users\deviv> cd "c:\Lorenzo\Fondamenti di Informatica\VisualStudio progs\i.o file 1\" ; if ($?) { gcc input output file.c -o input output file } ; if ($?) { .\input output file } gcc: The term 'gcc' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. PS C:\Lorenzo\Fondamenti di Informatica\VisualStudio progs\i.o file 1> |
Ця проблема виникла після того, як я використовував функцію fprintf()
, щоб зберегти результати у файлі виводу з назвою mieiDatiOut.txt
. До цього моменту програма працювала коректно, коли вона лише читала цілі числа з файлу і виводила їх.
Тепер давайте звернемося до проблеми в коді:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
#include <stdio.h> #define MAXDIM 1024 int main() { FILE* in_file; FILE* out_file; in_file = fopen("C:\\Lorenzo\\Fondamenti di Informatica\\VisualStudio progs\\i.o file 1\\mieiDati.txt", "r"); // in_file = fopen("mieiDati.txt", "r"); non funziona!! if (in_file == NULL) { printf("[#] Impossibile aprire il file: mieiDati.txt.\n"); return 1; } out_file = fopen("C:\\Lorenzo\\Fondamenti di Informatica\\VisualStudio progs\\i.o file 1\\mieiDatiOut.txt", "w"); if (out_file == NULL) { printf("[#] Impossibile aprire il file: mieiDatiOut.txt.\n"); return 1; } int r = 0; int tmp; int v[MAXDIM]; while (fscanf(in_file, "%d", &tmp) != EOF && r < MAXDIM) { v[r] = tmp; r++; } for (int i = r - 1; i >= 0; i--) { fprintf(out_file, "[%d] ", v[i] + 1); } fclose(in_file); fclose(out_file); return 0; } |
Проблема, здається, пов’язана зі шляхами, вказаними для операцій вводу та виводу файлів. Зокрема, абсолютні шляхи, використані для відкриття вхідних та вихідних файлів, можуть бути причиною проблеми.
Для вирішення цієї проблеми ви можете спробувати наступні кроки:
fopen()
. Переконайтеся, що шляхи вказані правильно і доступні з вашого поточного робочого каталогу.mieiDati.txt
існує у вказаному каталозі.mieiDatiOut.txt
не відкритий або не використовується іншим процесом.Дотримуючись цих кроків і виправляючи шляхи файлів за необхідності, ви повинні змогти вирішити проблему і успішно виконати свою програму на мові C у VisualStudio Code.
Зверніть увагу, що наведений фрагмент коду призначений лише для демонстраційних цілей і може потребувати додаткових змін в залежності від ваших конкретних вимог та конфігурації системи.
На завершення, як новачок програміст, не соромтеся звертатися за допомогою та задавати питання, коли виникають проблеми. Приємного програмування!