Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Samoczynne wywoływanie funkcji scanf

Ostatnio zmodyfikowano 2017-11-23 06:36
Autor Wiadomość
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?
C/C++
#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;
}
P-167081
karambaHZP
» 2017-11-22 11:52:04
A co to?
scanf( "%d \n", & n );
 
Powinno być
scanf( "%d", & n );
 
http://en.cppreference.com/w/c​/io/fscanf
P-167082
Monika90
» 2017-11-22 12:32:36
Oprócz tego, %s wymaga argumentu typu char*, a ty masz const short*
P-167084
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
P-167107
« 1 »
  Strona 1 z 1