[C] Wczytywania z klawiatury całego tekstu.
Ostatnio zmodyfikowano 2014-01-23 16:57
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? |
|
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 ) |
|
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); |
|
alixir |
» 2014-01-23 10:06:28 A co tu jest niejasnego. scanf( "%[^\n]", & politechnika[ licznik ].imie ); |
|
noindyfikator Temat założony przez niniejszego użytkownika |
» 2014-01-23 10:44:52 no ale to nie dziala ? |
|
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. |
|
noindyfikator Temat założony przez niniejszego użytkownika |
» 2014-01-23 10:54:40 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( "Baza danych do struktury.txt", "a+" );
for( licznik = 0; licznik < rozmiar; licznik++ ) { 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 |
|
alixir |
» 2014-01-23 10:59:13 Wklej cały program |
|
« 1 » 2 3 |