C nie działająca pętlą w C <nowy>

Odpowiedz Nowy wątek
2016-10-31 22:00
Chrissc10
0

Witam pomożecie z tym programem ? nie potrafię zrozumieć co robię źle. W c++ to działa natomiast w C samym nie chce :(

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char tab[11];
    int i;
    printf("Podaj Numer pesel:");
    scanf("%s", tab);
    printf("Numer pesel to:");

    for (i = 0; i < 11; i++)
    {

        printf("%s", tab[i]);

    }

    system("pause");
    return 0;
}
edytowany 1x, ostatnio: kq, 2016-12-13 18:26
Wstawiaj kod w znaczniki kolorujące składnię. - szweszwe 2016-10-31 22:05

Pozostało 580 znaków

2016-10-31 22:17
kq
1

PESEL ma 11 znaków. scanf z %s zapisuje wczytane znaki + 1 znak null, czyli dla 11-znakowego PESEL - 12 znaków. Do 11-znakowej tablicy. Krótko mówiąc: UB.

Ponadto w pętli próbujesz wyświetlić każdy znak jako ciąg znaków. Albo %c i wyświetlasz znaki, albo %s i wyświetlasz string, bez pętli.

@Artur Pyśk wth? tab decayuje spokojnie do char*. A pomysł z wczytywaniem 11-znakowej liczby do 32-bitowej¹ zmiennej jest, delikatnie mówiąc, poroniony.

¹ na 99% OP używa architektury z 32-bitowym intem.


Pozostało 580 znaków

2016-10-31 22:28
Chrissc10
0

Dałem %c i wszystko działa jak należy :) Dziękuję mega za pomoc ! a ty jakbyś inaczej to zrobił ?

Pozostało 580 znaków

2016-10-31 22:30
Chrissc10
0

Jedyne co mogę dodać to taki błąd przy zakończeniu programu "Run-Time Check Failure #2 - Stack around the variable 'tab' was corrupted."

Pozostało 580 znaków

2016-10-31 22:44
Chrissc10
0

Okej dodałem tab[12] wszystko działa

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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