Samoczynne wywoływanie funkcji scanf
Ostatnio zmodyfikowano 2017-11-23 06:36
1mSnajper Temat założony przez niniejszego użytkownika |
Samoczynne wywoływanie funkcji scanf » 2017-11-22 11:43:47 Tak jak w temacie, poniższy kod ma na celu robić, co robi to jest w sumie najmniej ważne, ale kiedy uruchamiam program to zaraz po wpisaniu ilosci osob program karze wpisać coś jeszcze, żeby wywołała się pętla. Okazuje się, że to co musze wpisać przed pętlą to pierwszy wiersz tablicy, co można zaobserwować podczas wypisywania wyników w ostatniej części programu. Jaki jest powód takiego samoczynnego, przedwczesnego uruchamiania się funkcji? Mozliwe, że to przez ampersand? #include <stdio.h>
int main( int argc, char * argv[] ) { int a, b = 0; int n = 0; printf( "Podaj ilosc wczytywanych osob mniejsza od 10: " ); scanf( "%d \n", & n ); const short tab[ n ][ 20 ]; while( b <= n - 1 ) { printf( "Podaj imie: " ); scanf( "%s \n", & tab[ b ][ 0 ] ); b++; } b = 0; while( b <= n - 1 ) { printf( "Imie: %s \n", & tab[ b ][ 0 ] ); b++; } return 0; }
|
|
karambaHZP |
» 2017-11-22 11:52:04 |
|
Monika90 |
» 2017-11-22 12:32:36 Oprócz tego, %s wymaga argumentu typu char*, a ty masz const short* |
|
1mSnajper Temat założony przez niniejszego użytkownika |
» 2017-11-23 06:36:10 Faktycznie to psulo wszystko :D A co do const short to szczerze powiedziawszy nie mam pojęcia co jest lepsze, ale zaufam osobie z wiekszym doświadczeniem i użyje char. Dziękuję za pomoc |
|
« 1 » |