• 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

Fiszki IT
Fiszki IT
+2 głosów
88 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 (121,400 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ź 53 wizyt
pytanie zadane 9 czerwca w C i C++ przez warzywko13 Użytkownik (740 p.)
0 głosów
1 odpowiedź 241 wizyt
pytanie zadane 3 maja 2020 w C i C++ przez reken Początkujący (390 p.)
0 głosów
2 odpowiedzi 85 wizyt
pytanie zadane 7 kwietnia 2020 w C i C++ przez ResCrove Obywatel (1,700 p.)
Porady nie od parady
Forum posiada swój własny serwer Discord, dzięki któremu będziesz mógł po prostu pogadać z innymi Pasjonatami lub zapytać o jakiś problem. Podstrona z chatem znajduje się w menu pod ikoną człowieka w dymku.IRC

84,751 zapytań

133,554 odpowiedzi

295,976 komentarzy

56,009 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.

...