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

[C] Wczytywania z klawiatury całego tekstu.

Ostatnio zmodyfikowano 2014-01-23 16:57
Autor Wiadomość
noindyfikator
Temat założony przez niniejszego użytkownika
[C] Wczytywania z klawiatury całego tekstu.
» 2014-01-23 09:51:05
Witam. Mam pewien problem.
Używam funkcji char z %s - dla łańcuchów. Wszystko działa poprawnie lecz program wczytuje tekst podany przez użytkownika do spacji.
np:

printf("Podaj imie studenta: ");
scanf("%s", politechnika[licznik].imie);

użytkownik wpisuje: abc def

i potem wyświetla tylko abc ;/

ktoś wie jak to zrobić żeby wyświetliło cały tekst?
P-102913
alixir
» 2014-01-23 10:01:51
Możesz użyć małej modyfikacji kodu
scanf( "%[^\n]", & imie );
 lub skorzystać z innej funkcji
gets( imie )
P-102914
noindyfikator
Temat założony przez niniejszego użytkownika
» 2014-01-23 10:02:58
a w takim przypadku z uzyciem struktury?:

printf("Podaj imie studenta: ");
scanf("%s", politechnika[licznik].imie);
P-102915
alixir
» 2014-01-23 10:06:28
A co tu jest niejasnego.
scanf( "%[^\n]", & politechnika[ licznik ].imie );
P-102916
noindyfikator
Temat założony przez niniejszego użytkownika
» 2014-01-23 10:44:52
no ale to nie dziala ?
P-102917
alixir
» 2014-01-23 10:50:56
Działa. Widocznie masz coś namieszane w klasie, lub źle podstawiasz licznik.

A ogólnie to celowo mieszasz C z C++ ?
W czystym C nie ma klas.
P-102918
noindyfikator
Temat założony przez niniejszego użytkownika
» 2014-01-23 10:54:40
C/C++
FILE * plik;
int licznik = 0;
int rozmiar;

system( "cls" );
printf( "Podaj liczbe studentow: " );
scanf( "%d", & rozmiar );
printf( "\n" );

struct student * politechnika;
politechnika = malloc( sizeof( struct student ) * rozmiar );

do
{
    printf( "Podaj numer idenxu: " );
    scanf( "%s", politechnika[ licznik ].index );
    printf( "Podaj imie studenta: " );
    scanf( "%s", politechnika[ licznik ].imie );
    printf( "Podaj nazwisko studenta: " );
    scanf( "%s", politechnika[ licznik ].nazwisko );
    printf( "Podaj wiek studenta: " );
    scanf( "%s", politechnika[ licznik ].wiek );
    printf( "\n" );
    licznik++;
} while( licznik < rozmiar );

// plik = fopen("c:\\baza\\Baza danych do struktury.txt", "a+");
plik = fopen( "Baza danych do struktury.txt", "a+" );

for( licznik = 0; licznik < rozmiar; licznik++ ) // zapis do  pliku
{
    fprintf( plik, "Index:%s\n", politechnika[ licznik ].index );
    fprintf( plik, "Imie:%s\n", politechnika[ licznik ].imie );
    fprintf( plik, "Nazwisko:%s\n", politechnika[ licznik ].nazwisko );
    fprintf( plik, "Wiek:%s\n", politechnika[ licznik ].wiek );
    fprintf( plik, "-----------------" );
    fprintf( plik, "\n\n" );
}
fclose( plik );
return 0;
o to mi chodzi żeby móc  podać imie i nazwisko z spacjami np. krzysiek marek antoni biebrzanski etc
P-102919
alixir
» 2014-01-23 10:59:13
Wklej cały program
P-102920
« 1 » 2 3
  Strona 1 z 3 Następna strona