Scanf - podwójne pobieranie danej z konsoli

0

Witam, mój problem polega na tym, że nawet w przypadku prostego kodu (załączonego), gdy mam wpisać daną do konsoli to wymusza na mnie wpisanie dwóch danych. W tym przypadku muszę wpisać kolejno np:

3 (zatwierdzam enter)
3 (znowu zatwierdzam)

i dopiero program się wykonuje.
Wykonując bierze pod uwagę pierwszą liczbę, jednakże przy bardziej skomplikowanych programach mam problem gdyż źle przelicza.
Co ciekawe dzieje się tak tylko z pierwszą funkcją scanf, każda kolejna użyta po niej działa jak trzeba.
Nie działo się tak na początku.
Program jakiego używam to Code::blocks, jednakże w Dev jest tak samo, podobnie jak w NetBeans.
Jakieś propozycje rozwiązania?

Jeżeli to coś zmienia to program nie wyświetla mi polskich znaków w terminalu.

 
#include <stdio.h>

int main(){
int a;
printf("Podaj liczbę\n");
scanf("%d\n", &a);
printf("Twoja liczba to %d\n", a);
return 0;
}
2

Usuń ten \n ze scanfa.

0

http://www.cplusplus.com/reference/cstdio/scanf/

Whitespace character: the function will read and ignore any whitespace characters encountered before the next non-whitespace character (whitespace characters include spaces, newline and tab characters -- see isspace). A single whitespace in the format string validates any quantity of whitespace characters extracted from the stream (including none).

Czyli dopisując biały znak w format string spowodowałeś, że scanf będzie czytał tak długo, aż natrafi na nie biały znak lub koniec pliku.
białe znaki to spacja koniec linii (CR i lub LF), tabulator.

1 użytkowników online, w tym zalogowanych: 0, gości: 1