[Dev-C++] Błąd "Permission denied (...) "
Ostatnio zmodyfikowano 2007-10-21 10:32
eXtreme |
» 2007-10-17 20:59:08 Witajcie piszę to tu bo nie chcę zaśmiecać tworząc nowy temat. Zaznaczam że są to moje pierwsze kroki z C++ Tworze coś takiego : #include <iostream> #include <conio.h> using namespace std; int main() { float a; float b; cout << "Podaj pierwsza liczbe: "; cin >> a; cout << "Podaj druga liczbe: "; cin >> b; cout << "liczba a: " << a << endl; cout << "liczba b: " << b << endl; cout << "Menu wyboru:" << endl; cout << "[1] Oblicz: a+b" << endl; cout << "[2] Oblicz: a-b" << endl; cout << "[3] Oblicz: a*b" << endl; cout << "[4] Oblicz: a/b" << endl; cout << "Wpisz numer: "; int wybor; cin >> wybor; cout << endl << "Wpisales numer: " << wybor << endl; switch( wybor ) { case 1: cout << "Opcja " << wybor << " wynik dodawania a+b=" << a + b << endl; break; case 2: cout << "Opcja " << wybor << " wynik odejmowania a-b=" << a - b << endl; break; case 3: cout << "Opcja " << wybor << " wynik mnozenia a*b=" << a * b << endl; break; case 4: cout << "Opcja " << wybor << " wynik dzielenia a/b=" << a / b << endl; break; default: cout << "Opcja " << wybor << " taka opcja nie istnieje!" << endl; break; } getch(); return( 0 ); } i wszystko pięknie działa ale jeżeli wstawie jakichkolwiek znak np. głupia spację czy enter lub nie daj boże wstawie np. case 5: cout << "Opcja " << wybor << " wynik mnożenia a*b=" << a * b << endl; break; Zaznacza że dokładam jeszcze opcje wyboru 5-tki oraz że ta spacja nie koliduję z żadna komendą itp. Gdy klikam kompiluj i uruchom pojawiają sie takie błędy: a w rozszerzeniu: Building Makefile: "C:\Dev-Cpp\Makefile.win" Wykonywanie make... make.exe -f "C:\Dev-Cpp\Makefile.win" all g++.exe pp.o -o "Projekt5.exe" -L"C:/Dev-Cpp/lib"
C:\Dev-Cpp\Bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot open output file Projekt5.exe: Permission denied collect2: ld returned 1 exit status
make.exe: *** [Projekt5.exe] Error 1
Wykonanie zakończone
dodam że nic sam nie blokuje Podejrzewam że może jakis program blokuje np. Kaspersky lub spyboot O co chodzi ? Dodam że jak już sie raz pokaże ten błąd to już nic nie pomaga - anulowanie zmian itp. Trzeba otworzyć plik jeszcze raz by zadziałało ! Pomocy ! |
|
eXtreme |
» 2007-10-18 08:05:10 Zapisuje wszysko w domyślnym katalogu: C:\Dev-Cpp[/code]
:( |
|
eXtreme |
» 2007-10-18 13:23:16 Mam Ale to partycja NTFS Dowiedziałem się że mogą występować właśnie w niej problemu z uprawnieniami. W pracy mam FAT i tu nie mam żadnych problemów a w domu ... |
|
eXtreme |
» 2007-10-20 20:01:37 Dobra poradziłem sobie z tym problemem Chodziło właśnie o to że w NTFS-ie pojawiaja sie problemy z utratą uprawnień do zmiany plików. Teraz pracuje na koncie administratora w XP i wszystko jest OK. A teraz pytanie jest takie Mając to #include <iostream> #include <conio.h> #include <math.h> using namespace std; int main() { int a; int b; cout << "Podaj pierwsza liczbe: "; cin >> a; cout << "Podaj druga liczbe: "; cin >> b; cout << "liczba a: " << a << endl; cout << "liczba b: " << b << endl; cout << "Menu wyboru:" << endl; cout << "[1] Oblicz: a+b" << endl; cout << "[2] Oblicz: a-b" << endl; cout << "[3] Oblicz: a*b" << endl; cout << "[4] Oblicz: a/b" << endl; cout << "[5] Oblicz: a%b" << endl; cout << "Wpisz numer: "; int wybor; cin >> wybor; cout << endl << "Wpisales numer: " << wybor << endl; switch( wybor ) { case 1: cout << "Opcja " << wybor << " wynik dodawania a+b=" << a + b << endl; break; case 2: cout << "Opcja " << wybor << " wynik odejmowania a-b=" << a - b << endl; break; case 3: cout << "Opcja " << wybor << " wynik mnozenia a*b=" << a * b << endl; break; case 4: cout << "Opcja " << wybor << " wynik dzielenia a/b=" << a / b << endl; break; case 5: cout << "Opcja " << wybor << " wynik dzielenie modulo a%b=" << a % b << endl; break; default: cout << "Opcja " << wybor << " taka opcja nie istnieje!" << endl; break; } getch(); return( 0 ); } Wszystko jest ok do czasu . +,-,* oraz % działa dobrze ale / nie bo zastosowałem int a tu nie ma liczb po przecinku które w / są potrzebne. A w % ( dzieleniu z resztą ) nie są potrzebne jak to razem połączyć Czyli jak wykorzystać int i float w jednym programie. Sorry że tak zawracam głowę ale nie mam sie kogo innego poradzić. Znalazłem takie coś co chyba oznacza że dobrze jest jak teraz mam ale czy nie może być tak by wynik z dzielenia np. 10/3= 3.33333 To coś: |
|
eXtreme |
» 2007-10-21 10:32:56 Na początku dziękuje za pomoc i przepraszam, że zawracam głowę mam nadzieje że to już ostatni raz Pierwsza sprawa: jeśli temat został rozwiązany, napisz to. |
Problem został rozwiązany i napisałem o tym w najbliższym wolnym terminie (praca, praca, praca) Druga sprawa: zakładaj NOWY temat jeśli masz inny problem niż ten, który został opisany w pierwszym poście. |
Zgubiła mnie grzeczność - nie chciałem zakładać 10 nowych tematów jeżeli tytuł tego tematu dotyczy i mojej sprawy "mam problem z Dev-C++" ja naprawde mam problem z Dev-C++ :) Trzecia sprawa: zamień typ zmiennej a i b z int na float, czyli:
|
jeżeli tak zrobię - czyli zamienię na początku int na float - to nie mogę skompilować bo wyskakuje błąd przy dzieleniu z resztą .... Jeśli chcesz mieć wynik opisany za pomocą liczby rzeczywistej, a liczby wprowadzane mają być całkowite musisz zapisać wtedy:
cout <<( float ) a / b << endl;
cout << static_cast < float >( a ) / b << endl;
Efekt w obu przypadkach jest ten sam, jednak zaleca się stosowanie drugiego zapisu, ponieważ łatwiej później szukać błędów w kodzie. Druga metoda rzutowania jest jednak trudniejsza, jednak teraz szczegóły nie są tu istotne. |
Zrobiłem tak, że zmieniłem case 4 na takie coś: case 4: cout << "Opcja " << wybor << " dzielenie a/b="; cout << static_cast < float >( a ) / b << endl; cout << "Opcja " << wybor << " dzielenie a/b=" << a / b << endl; break;
oczywiście wyskakują dwa wyniki jeden całkowity a drugi z liczbą z przecinkiem ale mogę wykasować 4 linijkę i bedzie jedna Dobrze będzie ? |
|
1 « 2 » |