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

[C++] Tablica znaków (szyfrowanie)

Ostatnio zmodyfikowano 2012-04-09 21:43
Autor Wiadomość
Admixior
» 2012-04-09 20:24:52
Zauważ zmianę " -> '
for()
if( tekstIn[ z ] == 'a' || tekstIn[ z ] == 'A' )  tutaj wypisywanie w morsie dla litery "a"
itd...
P-54199
Schulze13
Temat założony przez niniejszego użytkownika
» 2012-04-09 20:28:27
Tylko że w
else
 mam wypisywanie kodu Morse'a, a w
if
 sprawdzanie kolejnych liter.
P-54200
Admixior
» 2012-04-09 20:33:05
wklej tutaj tę pętlę bo nie mogę pojąć o co chodzi
P-54202
Schulze13
Temat założony przez niniejszego użytkownika
» 2012-04-09 20:40:47
Ok z edytowałem kod
C/C++
char MorseaSzyfr()
{
    char tekstIn[ 514 ] = { '\0' };
   
    cout << "Wpisz tekst (maksymalnie 512 znak" << char( 243 ) << "w):" << endl;
    cin.get( tekstIn, 512 );
   
   
    for( int z = 0; z < 512; z++ ); //sprawdza kazda wartosc tablicy
   
    {
        if(( tekstIn[ 'z' ] == 'a' ) ||( tekstIn[ 'z' ] == 'A' ) )
        {
            cout << char( 149 ) << char( 151 ); //wypisuje .- , a właściwie •—
        }
        else
        {
           
        }
       
    }
   
    cout << tekstIn; //test
    return 0;
}
P-54203
Admixior
» 2012-04-09 20:45:00
Jeśli się odnosisz do zmiennych to piszesz bez cudzysłowiu (nawet pojedynczego) czyli tak "tekstIn[ z ]"

PS mógłbyś to zrobić na switch
C/C++
switch( tekstIn[ z ] )
{
case 'a': case 'A': cout << char(...); break;
case 'b': case 'B': cout << char(...); break;
}
P-54207
Schulze13
Temat założony przez niniejszego użytkownika
» 2012-04-09 20:47:02
Tylko, że
tekstIn[ 'z' ]
 mi kompilator załapał... chyba.
P-54208
Admixior
» 2012-04-09 20:50:29
załapał bo 'z'  w kodowaniu ascii (zobacz na wikipedię) ma kod 122 więc zawsze brało 122 element tablicy (123 w indeksowaniu od 0)
Tak nie może być.

Jak wprowadzałeś krótki txt to tam były same głupoty.
A swoją drogą nie zawsze będzie 512 liter w tablicy więc powinieneś przerwać gdy się skończą normalne znaki

@edit:
C/C++
char MorseaSzyfr()
{
    char tekstIn[ 514 ] = { '\0' };
   
    cout << "Wpisz tekst (maksymalnie 512 znak" << char( 243 ) << "w):" << endl;
    cin >> tekstIn; /////////<<<<<--------  zauważ tę linijkę
    // na końcu będzie znak null (0)
   
    for( int z = 0; z < 512; z++ ); //sprawdza kazda wartosc tablicy
   
    {
        if(( tekstIn[ z ] == 'a' ) ||( tekstIn[ z ] == 'A' ) )
        {
            cout << char( 149 ) << char( 151 ); //wypisuje .- , a właściwie •—
        }
        else if(( tekstIn[ z ] == 'b' ) ||( tekstIn[ z ] == 'B' ) )
        {
           
        }
        /****  tak przez wszystkie litery numerki i spacje, aż w końcu  *********/
        else if( tekstIn[ z ] == 0 )
        {
            break; //przerywamy pętlę
        }
        else
        {
            //a jak litery w ogóle nie będzie
        }
    }
   
    cout << tekstIn; //test
    return 0;
}

lub

C/C++
char MorseaSzyfr()
{
    char tekstIn[ 513 ];
   
    cout << "Wpisz tekst (maksymalnie 512 znak" << char( 243 ) << "w):" << endl;
    cin.get( tekstIn, 512 );
   
    bool kontynuuj = true
    for( int z = 0;( z < 512 ) && kontynuuj; z++ ); //sprawdza kazda wartosc tablicy
   
    {
        switch( tekstIn[ z ] )
        {
        case 'a': case 'A': cout << char(...); break;
        case 'b': case 'B': cout << char(...); break;
            /****  tak przez wszystkie litery numerki i spacje, aż w końcu  *********/
        case 0: kontynuuj = false;
        default: //a jak litery w ogóle nie będzie
        }
       
    }
   
    cout << tekstIn; //test
    return 0;
}
P-54209
Schulze13
Temat założony przez niniejszego użytkownika
» 2012-04-09 20:55:46
Te 512 znaków fix'ne kiedy indziej, bo najważnijszym problemem jest zmiana wypisanie każdego znaku tablicy

main.cpp: In function 'char MorseaSzyfr()':
main.cpp:24:26: error: name lookup of 'z' changed for ISO 'for' scoping [-fpermissive]
main.cpp:24:26: note: (if you use '-fpermissive' G++ will accept your code)
make[2]: *** [build/Debug/MinGW-Windows/main.o] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
poza tym o co z chodzi z
'-fpermissive'
P-54210
1 « 2 » 3 4
Poprzednia strona Strona 2 z 4 Następna strona