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

[C] scanf wczytywanie dokładnie 8 znaków

Ostatnio zmodyfikowano 2014-01-01 22:23
Autor Wiadomość
Katruf
Temat założony przez niniejszego użytkownika
[C] scanf wczytywanie dokładnie 8 znaków
» 2014-01-01 19:50:36
witam
potrzebuję za pomocą scanf() wczytać dokładnie 8 znaków do tablicy.
próbowałem
C/C++
char kryteria[ 9 ];
kryteria[ 8 ] = '\0';
for( i = 0; i < 8; i++ ) scanf( "%c", & kryteria[ i ] );

i jak podam w konsoli wpiszę np 20 zer to faktycznie w tablicy znajdzie się 8 zer ale jak podam 20 jedynek to do tablicy wędruje tylko 7 ...
czy jest jakiś inny sposób żeby wczytać określoną liczbę znaków? chodzi mi o to żeby nie przekroczyć tablicy, żeby nie wpisać czegoś w tym ostatnim elemencie w którym powinno znajdować sie '\0' czy jak napiszę po prostu scanf("%s",kryteria); i podam dłuższy ciąg znaków to funkcja zabierze tylko tyle ile powinna?


edit: przy zerach też 7 wczytuje ... nie wiem jak ja tego nie zobaczyłem ..
P-100877
Katruf
Temat założony przez niniejszego użytkownika
» 2014-01-01 22:23:53
problem rozwiązany :)
C/C++
int i = 0;
char znak = 'a';
char kryteria[ 9 ];
fflush( stdin );
while( znak != '\n' ) {
    scanf( "%c", & znak );
   
    if( i < 8 ) kryteria[ i ] = znak;
   
    i++;
}




P-100900
« 1 »
  Strona 1 z 1