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

Problem ze scanf

Fiszki IT
Fiszki IT
0 głosów
290 wizyt
pytanie zadane 19 listopada 2017 w C i C++ przez Mikołaj Krupiński Początkujący (430 p.)

Cześć,

mam problem. Chce wczytać do tablicy n znaków przy użyciu scanf(), ale zamiast pierwszego znaku trafia znak nowej linii. Dodam, że przy użyciu cin takiego problemu nie ma.

char ch[4];
char temp;
for (int i = 0; i < 4; i++)
{
      scanf("%c", &temp);
      ch[i] = temp;
}

for (int i = 0; i < 4; i++)
      printf("%c", &ch[i]);

Proszę o pomoc i z góry dziękuję za odpowiedź.

2 odpowiedzi

0 głosów
odpowiedź 19 listopada 2017 przez Bondrusiek Maniak (60,670 p.)

Witam,

nie potrzebnie dublujesz zadanie

scanf("%c", &temp);
      ch[i] = temp;

zamień na

scanf("%c", &ch[i]);

dodatkowo zamiast

printf("%c", &ch[i]);

zamień na

printf("%c", ch[i]);

Operator & służy do pobrania adresu i potrzeby jest aby zapełnić zmienną np. za pomocą scanf(). Natomiast jak chcesz wyświetlić zmienną to tylko ją podajesz bez &.

Teraz możesz wpisać w linii nazwę czteroelementową i zostanie ona wyświetlona.

0 głosów
odpowiedź 20 listopada 2017 przez j23 Mędrzec (164,200 p.)

Dodam, że przy użyciu cin takiego problemu nie ma.

cin pomija białe znaki, scanf z format stringiem jak u Ciebie nie różni się od funkcji getc(). Spróbuj tak:

    char ch[4];
  
    while(isspace(ch[0] = getc(stdin))); 

    for (int i = 1; i < 4; i++)
    {
        ch[i] = getc(stdin); 
    }

 

Podobne pytania

0 głosów
1 odpowiedź 217 wizyt
pytanie zadane 1 kwietnia 2020 w C i C++ przez Hubertius Bywalec (2,970 p.)
+1 głos
1 odpowiedź 84 wizyt
pytanie zadane 16 kwietnia 2019 w C i C++ przez Neeq Obywatel (1,930 p.)
0 głosów
0 odpowiedzi 667 wizyt
pytanie zadane 8 stycznia 2018 w C i C++ przez BigBuzz Nowicjusz (180 p.)
Porady nie od parady
Pytania na temat serwisu SPOJ należy zadawać z odpowiednią kategorią dotyczącą tej strony.SPOJ

84,758 zapytań

133,559 odpowiedzi

295,986 komentarzy

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

...