Софтуерно Инженерство
Loading...
+ Нов въпрос
MartinRusanov avatar MartinRusanov 89 Точки

Програма от упражнение не тръгва - Бъгав Visual studio?

Здравейте, аз си свалих упражнението от Вход и изход от конзолата за октомври месец, написах програмата и я стартирах. Въпреки, че не ми дава грешки при конмпилирането ми като ми се отвори черния екран от конзолата, в него не можех да пиша нищо. Ако натисна контрол и F5 повторно ми изписва следното съобщение: The process cannot access the file 'bin\Debug\Exercise.exe' because it is being used by another process.

Аз се опитах да затворя този процес но той продължава да си стои там. Някой може ли да ми каже защо замръзва конзолата. Кодът ми е следният

using System;

namespace Exercise
{
    class Program
    {
        static void Main(string[] args)
        {
           int a = int.Parse(Console.ReadLine());
           Console.WriteLine(a);
           double b = double.Parse(Console.ReadLine());
           double c = double.Parse(Console.ReadLine());
           Console.WriteLine("{0:X, -10} {0, 5} {1:F2, 10} {2:F3, -10}", a, Convert.ToString(a, 2));
        }
    }
}

 

0
Основи на програмирането 15/11/2015 20:23:40
MartinRusanov avatar MartinRusanov 89 Точки

Сега даже сабелязах, че като отворя същия сълюшън със същата програма и като пренапиша целия код само на Console.WriteLine("Hello world") без нищо друго, не може да ми отпечата това на екрана.

Даже не ми дава Press any key to continue

0
15/11/2015 20:18:54
Filkolev avatar Filkolev 4501 Точки

Затвори VS и убий всякакви процеси, които са свързани с него. Друг вариант е просто да рестартираш компа. След това отваряш солюшъна, десен бутон на Clean soution, Build и пак пускаш да пробваш. Получавам и аз от време на време подобни грешки, явно някакви процеси използват exe-то и се бъгва.

0
MartinRusanov avatar MartinRusanov 89 Точки

Аз пробвах да убия процесите свурзани с VS но нещат да се затворят всички. След рестартиране на компа пак не иска да стартира програмата и пак отваря 3.4 процеса два от които не искат да се убият

0
Filkolev avatar Filkolev 4501 Точки

Не съм сигурен дали е нужен рестарт или може да рестартираш explorer.exe. Пробвай ръчно да изтриеш bin и obj папките преди да стартираш VS.

0
krisitown avatar krisitown 45 Точки

И на мен ми се е получавала подобна грешка(и то само когато съм на зор, примерно на изпита по programming basics ми стана така). Оправям я като просто направя нов проект, но би трябвало като се изчисти и билдне наново също да се оправи.

0
a.beshovishki avatar a.beshovishki 79 Точки

Махни си анти вирусната също.

0
Pete1 avatar Pete1 56 Точки

Относно грешката, където ти отваря конзолата и не можеш да пишеш нищо, това е от антивирусната ти (Avast най - вероятно), спри защитите, а ако използваш Windows 8/10, направо я махни, защото сaмите  ОС си имат Windows Defender. А относно: "The process cannot access the file 'bin\Debug\Exercise.exe' because it is being used by another process.",  и аз понякога имам същия проблем и бих бил благодарен, ако някой разясни защо точно се получава така. enlightened

 

0
Samuil.Petrow avatar Samuil.Petrow 1548 Точки

Десен бутон в/у проекта -> Properties -> Build Events и в Pre-build event command line:

if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"

Ако това не помогне, пробвай да преименуваш Exercise.exe, на някои студиа lock-a е само за delete.

0
MartinRusanov avatar MartinRusanov 89 Точки

Значи аз затворих антивируса и вече не ми дава забила конзола cmd.exe, в която не мога да пише нищо, обаче изникна още един проблем:

Аз опростих моя код до следният 

using System;

namespace Exercise
{
    class Program
    {
        static void Main()
        {

          int a = int.Parse(Console.ReadLine());       
          double b = double.Parse(Console.ReadLine());
          double c = double.Parse(Console.ReadLine());
            Console.WriteLine("{0}", a);
            int d = int.Parse(Console.ReadLine());
        }
    }
}

Като стартирам control и F5 ми дава, че имам Build Errors и ме пита дали искам да стартирам програмата с предишния успешен билд, а то учевидно няма абсолютно нищо грешно в този нов код. Освен това като билдна продължава да дава следните съобщения

Warning    1    Could not copy "obj\Debug\Exercise.exe" to "bin\Debug\Exercise.exe". Beginning retry 1 in 1000ms. The process cannot access the file 'bin\Debug\Exercise.exe' because it is being used by another process.    Exercise

и

Error    11    Could not copy "obj\Debug\Exercise.exe" to "bin\Debug\Exercise.exe". Exceeded retry count of 10. Failed.  

 Error    12    Unable to copy file "obj\Debug\Exercise.exe" to "bin\Debug\Exercise.exe". The process cannot access the file 'bin\Debug\Exercise.exe' because it is being used by another process.

Сега ще пробвам да рестартирам компа и да изтрия всички билднати exe-та, за да построя ново Exercise.exe с новия код.   

 

 

0
MartinRusanov avatar MartinRusanov 89 Точки

Благодаря ви за отговорите, наистина проблема беше в антивирусната програма. Просто я затворих и всичко заработи.

И сега да ви попитам за мнението ви относно моето решение за едно безумно глупаво упражнение.

Тъй като съм нов, ходя на работа и почти не ми остава време да решавам задачи, дали упражнението което е дадено при "Основи на програмирането" от "Вход и изход от конзолата" от октомври съм го решил правилно. Ще дам следния бебешки код който е правилен, но моето питане е дали той отговаря мо та мо на точните изисквания за output-a от съответното упражнение (тъй като разбрах, че за изпитните задачи ако имаш един грешен символ, задачата се счита за нерешена) 

using System;

namespace Exercise
{
    class Program
    {
        static void Main()
        {

          int a = int.Parse(Console.ReadLine());       
          double b = double.Parse(Console.ReadLine());
          double c = double.Parse(Console.ReadLine());
          string d = Convert.ToString(a, 2);
            Console.WriteLine("|{0:X}   |{1}|" + "{2, 10:F2}|{3:F3}", a, d, b, c);         
                      
        }
    }
}

0
MartinRusanov avatar MartinRusanov 89 Точки

Опаа забравих да прибавя нулите на двоичното число, но айде да речем че съм го направил

0