• 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

Object Storage Arubacloud
+2 głosów
225 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,190 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 Ekspert (252,740 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 Gaduła (3,120 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ź 168 wizyt
pytanie zadane 30 października 2023 w C i C++ przez Daaa22 Dyskutant (8,250 p.)
0 głosów
1 odpowiedź 323 wizyt
pytanie zadane 9 czerwca 2021 w C i C++ przez warzywko13 Użytkownik (840 p.)
0 głosów
1 odpowiedź 673 wizyt
pytanie zadane 3 maja 2020 w C i C++ przez reken Początkujący (390 p.)

92,551 zapytań

141,393 odpowiedzi

319,522 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...