Nur eine Zahl in der Eingabe

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Nur eine Zahl in der Eingabe

    Hallo zusammen, ich muss für mein Studium anfangen in C zu programmieren. Ich habe bisher noch keine Erfahrungen beim programmieren.
    Ich würde gerne XCode nutzen. Die aktuellste Version ist bereits auf meinem Mac OS 10.8 installiert.
    Jetzt möchte ich ganz einfach einen Wert einlesen und diesen wieder ausgeben, also scanf und printf. Das funktioniert auch soweit aber wenn ich das Programm in XCode abspiele kann ich nur eine einzige Zahl eingeben, bzw. wird mir nur eine einzige Zahl in der Eingabe angezeigt. Wenn ich 11 eingebe, steht in der Eingabe 1 und in der Ausgabe 11. Bei char und float tritt das selbe Problem auf. Woran liegt das?
    Hier ist mein simpler Quelltext und ein Bild von der Ausgabe:

    imageshack.us/photo/my-images/832/ohnetitelt.png/


    Quellcode

    1. #include <stdio.h>
    2. int main(){
    3. int test;
    4. printf("Hallo \n");
    5. scanf("%i", &test);
    6. printf("%i", test);
    7. return 0;
    8. }
    Alles anzeigen
  • Ich denke, dass liegt daran, dass du die Applikation nicht im Terminal ausführst.
    Die Xcode Konsole war damals™ jedenfalls nicht für Eingaben und Ähnliches zu gebrauchen und ich weiß nicht, ob sich das mittlerweile geändert hat.
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Hab mal ein wenig gespielt (hauptsächlich gespielt -- wollt mir grad ein wenig Zeit vertreiben, während ich auf den anderen Rechner warte...). Wenn man folgenden Code hinzufügt, sollte das Programm sich selbst noch einmal im Terminal starten. Hab nicht probiert, ob es auch in Xcode klappt, sollte aber eigentlich. Damit kann man dann einfach in Xcode starten und es öffnet sich ein neues Terminal-Fenster mit der Anwendung.

    Debugging (mit Xcode) funktioniert dann aber natürlich nicht mehr :(

    C-Quellcode

    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. // need:
    4. #include <unistd.h>
    5. #include <string.h>
    6. #include <semaphore.h>
    7. // Adjust for each application:
    8. #define SEM_NAME "TestAppSema"
    9. int main(int argc, char* argv[])
    10. {
    11. /* ----------------------------------------------------------------- */
    12. /* First to do in main() */
    13. /* ----------------------------------------------------------------- */
    14. sem_t *sem;
    15. sem = sem_open(SEM_NAME, O_CREAT, 0, 1);
    16. if(sem_trywait(sem)==0)
    17. {
    18. printf("Got initial semaphore, must be PARENT!\n");
    19. /* This is the parent process, possibly launched from Xcode.
    20. * Launch the same application again in Terminal.app */
    21. char buffer[1024];
    22. sprintf(buffer, "open -a Terminal %s", argv[0]);
    23. system(buffer);
    24. /* Give some time to child to launch. That's bad design,
    25. * but easiest I can think of right now */
    26. usleep(1000*500);
    27. /* Everything's done, clean up and destroy that semaphore for
    28. * good, so it will work next time again */
    29. sem_close(sem);
    30. sem_unlink(SEM_NAME);
    31. /* Exit */
    32. return 0;
    33. }
    34. sem_close(sem);
    35. /* ----------------------------------------------------------------- */
    36. /* Normal stuff that should run in Terminal */
    37. /* ----------------------------------------------------------------- */
    38. printf("Hello, world!\n");
    39. printf("Please enter a number:\n");
    40. int number;
    41. scanf("%d", &number);
    42. printf("Number entered was: %d\n",number);
    43. /// make sure to always cleanup
    44. sem_unlink(SEM_NAME);
    45. return 0;
    46. }
    Alles anzeigen
    C++