Pominięcie tablicy [C++]
Ostatnio zmodyfikowano 2014-06-03 12:09
BrutalxD Temat założony przez niniejszego użytkownika |
Pominięcie tablicy [C++] » 2014-06-03 10:28:37 Witam, program nie wczytuje mi zmiennej char klucz2[], na pozór wygląda łatwo, ale nawet po głębszym zastanowieniu, nie mogłem rozwikłać dlaczego nie działa poprawnie. Oto Kod: #include<iostream> #include<cmath> #include<cstring> #include<conio.h> using namespace std;
void wypisz( char zdanie[], unsigned granica ) { for( unsigned i = 0; i < granica; i++ ) cout << zdanie[ i ]; cout << endl; } int main() { char zdanie[ 5000 ], szyfr[ 5000 ], klucz2[ 500 ]; unsigned klucz1; cin.getline( zdanie, 4999 ); cout << "Podaj klucz pierwszego szyfrowania (liczba)\n"; cin >> klucz1; wypisz( zdanie, strlen( zdanie ) ); cout << "Podaj klucz drugiego szyfrowania (wyraz lub zdanie)\n"; cin.getline( klucz2, 499 ); wypisz( zdanie, strlen( zdanie ) ); return 0; }
|
|
00Andre |
» 2014-06-03 10:52:08 Ponieważ strumień jest zapełniony znakiem nowej lini, więc trzeba go wyczyścić po podaniu klucz1 a Funkcja getline kończy gdy napotka znak nowej Lini ! #include<iostream> #include<cmath> #include<cstring> #include<conio.h> using namespace std;
void wypisz( char zdanie[], unsigned granica ) { for( unsigned i = 0; i < granica; i++ ) cout << zdanie[ i ]; cout << endl; } int main() { char zdanie[ 5000 ], szyfr[ 5000 ], klucz2[ 500 ]; unsigned klucz1; cin.getline( zdanie, 4999 ); cout << "Podaj klucz pierwszego szyfrowania (liczba)\n"; cin >> klucz1; cin.clear(); cin.sync(); wypisz( zdanie, strlen( zdanie ) ); cout << "Podaj klucz drugiego szyfrowania (wyraz lub zdanie)\n"; cin.getline( klucz2, 499 ); wypisz( zdanie, strlen( zdanie ) ); return 0; }
00Andre |
|
BrutalxD Temat założony przez niniejszego użytkownika |
» 2014-06-03 11:05:55 Czyli po podaniu klucz1 i kliknięciu enter wprowadzam znak nowej linii, a następnie zaczyna działać funkcja getline, która się kończy przy spotkaniu nowej linii i dlatego nie daje mi wprowadzać. Dobrze rozumiem? |
|
00Andre |
» 2014-06-03 11:20:11 Tak dobrze. |
|
BrutalxD Temat założony przez niniejszego użytkownika |
» 2014-06-03 12:09:53 Ok, dzięki :) |
|
« 1 » |