• 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

VPS Starter Arubacloud
+2 głosów
223 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 (251,210 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ź 154 wizyt
pytanie zadane 30 października 2023 w C i C++ przez Daaa22 Dyskutant (8,250 p.)
0 głosów
1 odpowiedź 312 wizyt
pytanie zadane 9 czerwca 2021 w C i C++ przez warzywko13 Użytkownik (840 p.)
0 głosów
1 odpowiedź 654 wizyt
pytanie zadane 3 maja 2020 w C i C++ przez reken Początkujący (390 p.)

92,452 zapytań

141,262 odpowiedzi

319,077 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...