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

Wczytanie dwóch linii

Ostatnio zmodyfikowano 2016-08-25 10:37
Autor Wiadomość
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:
C/C++
#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; }
P-151071
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.
P-151076
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ę.
P-151079
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'.
P-151082
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).
C/C++
#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 ]
P-151087
« 1 »
  Strona 1 z 1