Probleme mit VS
-
Hallo,
ich studiere E-Technik im ersten Semester und habe Informatik (C).
Nun habe ich mir VS installiert und habe nur Probleme damit...Problem 1:
Das Debuggen funktioniert nur sporadisch. Beim ersten mal kein Problem, aber sobald ich das zweite mal Debuggen will, bekomme ich den Fehler:
-fatal error LNK1123: Fehler bei der Konvertierung in COFF: Datei ist ungültig oder beschädigt
oder
- Datei konnt zum Schreiben nicht geöffnet werden.Momentan schaffe ich mir da Abhilfe in dem ich im Projektordner die EXE lösche.
Dann geht es wieder...Problem 2:
als Aufgabenstellung sollen wir einen belasteten Spannungsteiler programmieren. Sprich in der Konsole soll der Lastwiderstand eingegeben werden und die Spannung soll ausgegeben werden.
Das ist der Code:
int main() { int R3; float U2; scanf("%i",&R3); U2=10*((100*R3)/(100+R3)/((100*R3)/(100+R3)+100)); printf("%f",U2); while(!_kbhit()); return 0; }
hir ist das Problem das die Variable U2 nicht richtig berechnet wird. Ich kann mir nicht erklären warum, aber es zeigt immer "0" an.
Ich habe mir als erstes VS2013 runtergeladen. Dann habe ich VS2012 ausprobiert. Und jetzt bin ich bei VS2010 (das wir auch an der FH haben).
Zum ersten Problem habe ich im Internet die Hilfe gefunden, ich soll mir das Service Pack 1 runterladen. Das behebt Probleme mit den Frameworks oder so. Hat aber auch nichts geholfen. Habe viele gefunden die das selbe Problem haben, aber keiner konnte Abhilfe schaffen.Ich hoffe ihr könnt mir bei beiden Problemen helfen.
Vielen Dank
Stefan
-
1. die EXE-Datei ist noch in Ausführung (von deinem letzten Testversuch) und kann bei der nächsten Compilierung nicht neu geschrieben werden; nutze STRG+F5 für den Testlauf und werfe kbhit-Zeugs weg
2. du rechnest nur mit int-Werten, und die haben nun mal keinen gebrochenen Teil; ersetze 100 jeweils 100.0 (noch besser durch eine Konstante wie const double k=100;) und es wird "richtig" gerechnet
-
Hallo,
vielen Dank für die Antwort!
Das mit dem Float hat funktioniert! Ich hab gar nicht daran gedacht..Aber die EXE war nicht mehr offen. Auch im Taskmanager oder in den Prozessen ist sie nicht mehr vertreten.
Wie hällt man sonst (außer mit _kbhit()) das Programm am abschalten ab?
Wir haben gelernt, dass es mit getch() oder ähnlichem nicht immer geht.Gruß
Stefan
-
Es ist sowieso besser, wenn du gleich Fließkommawerte (vorzugsweise double) einliest, falls du Divisionen durchführst. Ansonsten empfiehlt sich long long.
Gehe davon aus dass: "was ihr gelehrt bekommen habt" != "das was möglich und portabel ist und funktioniert".
Sowohl kbhit wie getch ist unportable Frickelei, die bei ahnungsloser Verwendung zu Fehlern führt.Ich habe dir gesagt, dass STRG+F5 im VisualStudio das Konsolenfenster offen hält, und auch wenn man tatsächlich ein Konsolenprogramm im Fenstermodus betreiben will, nimmt man für sowas eine Schleife, damit das Fenster erst z.B. bei einer Leereingabe schließt:
int main() { char s[1000]; while( fgets(s,1000,stdin) && *s!='\n' ) { double d; if( 1==sscanf(s,"%lf",&d) ) printf("%f",d); } return 0; }
-
Vielen Dank. Ich benutze es jetzt mit Strg F5.
Noch eine Frage wenn man Probleme mit Codes hat, kann ich bzw. soll ich jedes mal einen neues Thema erstellen oder gibt es hir im Forum ein sammel Thema in dem einen so schnell geholfen werden kann? Hab dies bezüglich nichts gefunden.Gruß
Stefan
-
Neu bitte.
Auch wenn du das Thema mit der Suche* findest, keine alten Threads wieder beleben.*Die normale Forensuche funktioniert z.Zt. nicht. Die
Suchabfrage powered by Google
dagegen schon.
-
Korrigiert mich aber müllt das nicht das Forum zu, wenn es für jeden Code ein neues Thema erstellt wird?
-
Du wirst ja jedesmal neue1 Probleme haben, die du dann mit einem aussagekräftigen Titel hier einstells.
So können auch andere mit ähnlichen Problemen davon profitieren.1Es sei denn, du bist lernresistent. Aber dann kommt ein Verweis auf dein altes Problem
-
Alles klar;)