• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Eclipse, funkcja scanf wykonuje się przed startem programu

+2 głosów
86 wizyt
pytanie zadane 24 sierpnia 2020 w C i C++ przez SzymonG Nowicjusz (170 p.)

Cześć, jest to mój pierwszy post więc proszę o wyrozumiałość.

Uczę się podstaw języka C w Eclipse i napotkałem problem z funkcją "scanf", jak na załączonym obrazku widać program w pierwszej kolejności prosi mnie o podanie liczby, a dopiero później wyświetla się komunikat abym podał liczbę. Czy problem może leżeć w źle wgranym kompilatorze? Mam zamiar programować mikrokontrolery AVR i nie wiem czy ten problem nie będzie się nawarstiwał, z góry dziękuję za pomoc.

 #include <stdio.h>

 int main ()
 {
   int liczba = 0;
   printf ("Podaj liczbę: \n");
   scanf ("%d", &liczba);
   printf ("%dx%d=%d\n", liczba, liczba, liczba*liczba);
   return 0;
 }


 

2
komentarz 25 sierpnia 2020 przez SzymonG Nowicjusz (170 p.)
std::cin jest w języku C++, a to jest w C

3 odpowiedzi

+1 głos
odpowiedź 25 sierpnia 2020 przez Piotr Batko Stary wyjadacz (13,170 p.)
wybrane 25 sierpnia 2020 przez SzymonG
 
Najlepsza
komentarz 25 sierpnia 2020 przez SzymonG Nowicjusz (170 p.)
Dzięki wielkie, Problem rozwiązany
+1 głos
odpowiedź 25 sierpnia 2020 przez .::VBService::. VIP (114,980 p.)
edycja 25 sierpnia 2020 przez .::VBService::.
#include <stdio.h>
 
int main ()
{
  int liczba = 0;
  printf ("Podaj liczbę: \n");
  fflush(stdout);
  (void) scanf ("%d", &liczba);
  printf ("%dx%d=%d\n", liczba, liczba, liczba*liczba);
  return 0;
}

eclipse after compilation scanf runnig before printf c ]

CDT Debugging with printf/scanf issue : Solution

 

One of our colleague had issue with Eclipse IDE who is using CDT (C/C++ Development Tool) for development.

The issue was with scanf() and printf() . The behaviour in the console is that not printf() statements ever executed until after all the scanf() have been executed. Namely he had to first type the inputs for scanf() before the printf() messages are printed. 

The issue is logged as https://bugs.eclipse.org/bugs/show_bug.cgi?id=173732 in Eclipse bugzilla but it is wont fix condition. So we had to come up with workaround.

The solution : ...

–2 głosów
odpowiedź 25 sierpnia 2020 przez Nabuchadonozor Bywalec (2,550 p.)

Spróbuj w 7 linii:

scanf("i", &liczba);

komentarz 25 sierpnia 2020 przez SzymonG Nowicjusz (170 p.)
Nie pomaga, w dodatku wpisywana cyfra jest ignorowana przez program i zastępowana zerem. Konsola:

5
Podaj liczbę:
0x0=0

Podobne pytania

0 głosów
1 odpowiedź 45 wizyt
pytanie zadane 9 czerwca w C i C++ przez warzywko13 Użytkownik (740 p.)
0 głosów
1 odpowiedź 232 wizyt
pytanie zadane 3 maja 2020 w C i C++ przez reken Początkujący (390 p.)
0 głosów
2 odpowiedzi 81 wizyt
pytanie zadane 7 kwietnia 2020 w C i C++ przez ResCrove Obywatel (1,700 p.)
Porady nie od parady
Nie wiesz jak poprawnie zredagować pytanie lub pragniesz poznać którąś z funkcji forum? Odwiedź podstronę Pomoc (FAQ) dostępną w menu pod ikoną apteczki.FAQ

84,132 zapytań

132,903 odpowiedzi

293,920 komentarzy

55,556 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...