Przypisanie wartości do tablicy

0

Jak przypisać wartość z scanf_s do tablicy? Próbuję tak, ale po wprowadzeniu słowa wywala błąd w konsoli.

char slowo[4];
printf("Podaj slowo: ");
scanf_s("%s", &slowo);
1

Zrób to w ten sposób:

char slowo[4];
printf("Podaj slowo: ");
scanf_s("%s", slowo); 
0
atmal napisał(a):

Zrób to w ten sposób:

char slowo[4];
printf("Podaj slowo: ");
scanf_s("%s", slowo); 

Ten znak niczego nie zmienia, dalej jest błąd.

0

Jesteś pewien, że wprowadzasz tam prawidłową liczbę znaków? Taką, która mieści się w rozmiarze podanym przez Ciebie?

1

Do tego co napisał @Bartosz36 dodałbym jeszcze że wprowadzone słowo może mieć maksymalnie 3 znaki - 4 znak jest dla \0.

Przydałoby się również abyś napisał coś więcej o błędzie który się pojawia.

0

tak aby rozwinąć odp atmala dot. znaków i \0

https://stackoverflow.com/questions/4711449/what-does-the-0-symbol-mean-in-a-c-string - 1 komentarz

0

Problem wydaje się leżeć w samej funkcji scanf_s(), która najwidoczniej nie ogarnia formatu %s bez doprecyzowania długości podanego łańcucha.

Autorze: Spróbuj tego:

    char slowo[ 4 ] = { 0 };
    printf( "Podaj slowo: " );
    scanf_s( "%s", slowo, strlen(slowo) );
0
char slowo[4];
	printf("Podaj slowo: ");
	scanf_s("%s", slowo, strlen(slowo));

To już prawie działa. Program się wykonuje, trzeba wcisnąć dowolny klawisz i wtedy wyskakuje okienko DEBUG ERROR.

0

Teraz to już musisz wrzucić cały swój kod, ponieważ w moim przypadku:

#include <iostream>

constexpr int WORD_LENGTH = 4;

int main( void )
{
    char slowo[ WORD_LENGTH ] = { 0 };
    printf( "Podaj slowo: " );
    scanf_s( "%s", slowo, WORD_LENGTH  );

    std::cout << "The word is: " << slowo << std::endl;

    std::cin.get();
    return 0;
}

To działa bez zarzutu...

Różnice, jakie możesz tu zobaczyć to:
linijka 7: zainicjalizowałem całą tablicę zerami.
linijka 9: ze względu na linijkę 7 podałem bezpośrednio rozmiar tablicy. Gdybym zostawił strlen() rozmiar byłby policzony jako 0 i nic bym do tablicy nie zapisał.

Sprawdź czy to u Ciebie działa, a potem wrzuć swój kod, lub wykorzystaj ten, który podałem.

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