Wczytanie dwóch linii
Ostatnio zmodyfikowano 2016-08-25 10:37
kisiel7 Temat założony przez niniejszego użytkownika |
Wczytanie dwóch linii » 2016-08-24 22:28:22 Poszukuję sposobu, aby wejście(zawierające spacje i jedno przejście do nowej linii) przesłać do jednego stringa, czyli chodzi mi o to, aby program ignorował pierwszy enter, a kończył wpisywanie dopiero na drugim. I ważne potrzebuje wyciągnąć z niego także długość całego łańcucha, żeby go później zaszyfrować. Narazie wygląda to tak: #include <iostream> #include<string> #include<algorithm> using namespace std; int main() { string z; int k, d; getline( cin, z ); d = z.length(); for( int i = 0; i < d; i++ ) { k =( int ) z[ i ]; if( k == 32 ) cout << ""; else if( k == 13 ) cout << endl; else if( k < 88 ) k += 3; else k -= 23; cout <<( char ) k; } return 0; } |
|
michal11 |
» 2016-08-25 00:07:02 Nie wiem czy dobrze zrozumiałem, ale generalnie wczytywanie dwóch linii to żadna filozofia, wystarczy drugi raz wywołać getline().
Może pokaż jakiś przykład jaki masz input i jaki chcesz uzyskać efekt. |
|
kisiel7 Temat założony przez niniejszego użytkownika |
» 2016-08-25 00:24:04 Nie do końca. Wytłumaczę to przykładem. Input: Mam jakiś tekst, ale zaraz pojawi się enter i przeniesie mnie do nowej linii, drugi enter i wywołam procedury szyfrowania oraz wywołam Ouput. Output: Każda litera z wejścia została przekonwertowana na nowy tekst przy użyciu kodu i ASCII i uwaga tam, gdzie było przejście do nowej linii na wejściu, będzie też przejście do nowej linii na wyjściu.
Koniec programu. ps.spacje i nową linię oczywiście nie konwertuję. |
|
michal11 |
» 2016-08-25 00:36:38 O ile dobrze rozumiem to wystarczy wczytać dwa stringi i je połączyć dodając pomiędzy nimi znak nowej linii '/n'. |
|
kisiel7 Temat założony przez niniejszego użytkownika |
» 2016-08-25 10:37:05 Dokładnie o to chodziło, a ja kombinuję z jakimiś funkcjami. Dzięki. Edit:Napisałem na spoju zadanie "Szyfr Cezara". Jaki bym nie podstawił zestaw danych wszystko działa dobrze, ale sędzia i tak mi odrzuca(błędny wynik). #include <iostream> #include<string> using namespace std; int main() { string z1, z2, z; int k, d, p; getline( cin, z1 ); getline( cin, z2 ); z = z1 + z2; d = z.length(); p = z1.length(); for( int i = 0; i < d; i++ ) { if( i == p ) cout << '\n'; d = z.length(); k =( int ) z[ i ]; if( k != 32 ) { if( k < 88 ) k += 3; else k -= 23; } cout <<( char ) k; } return 0; }[ \c pp ] |
|
« 1 » |