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

Konwersja na zwykły txt - nie wyświetla wyniku

Ostatnio zmodyfikowano 2013-11-09 17:45
Autor Wiadomość
Zebrak
Temat założony przez niniejszego użytkownika
Konwersja na zwykły txt - nie wyświetla wyniku
» 2013-11-09 14:05:54
Zmagam się z takim o to problemem. Napisany mam kod, w którym jest tablica stringów. Program powinien z pliku z klawiatury odczytać znak  i przekształcić go na zwykły txt. Generalnie nie powinno być problemu jednak ja nie jestem w stanie otrzymać wyniku (litery) ani na ekran ani do pliku. Postanowiłem wczytywać znaki  do zmienne i potem w pętli porównywać tego stringa z kolejnymi miejscami w tablicy. W momencie gdy stringi pasują pobieram sobie miejsce w tej tablicy. I tutaj jest w miarę ok, bo program zwraca poprawna wartość (np. dla ..- -> wartość 20 litera U). Próbowałem nawet wyświetlić wtedy samą wartość 20, ale nie jestem w stanie. Mając samą wartość spokojnie mogę przerobić to korzystając z ASCII na literę. I tak, wiem, że w kodzie jest ifstream i ofstream a korzystam z cin i cout, ale to nic nie zmienia, po prostu ani nie zapisuje do pliku ani nie wyrzuca na ekran. Sam odczyt stringa z pliku działa.


C/C++
int main() {
    ifstream ifs( "111.txt" );
    ofstream ofs( "alfabet.txt" );
    string c;
    int i, m = 0, por = 0;
    while( cin >> c )
    {
       
        for( i = 0; por = 1; i++ )
        {
            if( c == kody[ i ] )
            {
                por = 1;
                m = i;
            }
        }
       
        cout << znak;
    }
    ofs.close();
    return 0;
}

EDIT:

Fakt, return kończy program, ale nadal nic to nie zmienia :/
P-95769
pekfos
» 2013-11-09 14:07:50
return kończy program.

C/C++
for( i = 0; por = 1; i++ )
To jest pętla nieskończona.

PS: Nie odpowiadaj editami.
P-95770
Zebrak
Temat założony przez niniejszego użytkownika
» 2013-11-09 14:18:35
Ok, dzięki za zwrócenie uwagi, co do returnu.

Ale nadal nie rozumiem dlaczego pętla miałaby być nieskończona. Tym bardziej, że zwraca mi odpowiednią wartość miejsca w tablicy. No i dodatkowo, pomijając samą pętle to nawet jakbym chciał dać na cout jakiś "tekst" a nie zmienną to też nic nie wyświetla.
P-95773
pekfos
» 2013-11-09 14:23:16
Warunek jest zawsze prawdziwy.
P-95774
Zebrak
Temat założony przez niniejszego użytkownika
» 2013-11-09 14:27:47
Niestety, ale nadal tego nie rozumiem, zawsze mogę zmienić pętlę for na

for( i = 0; i <= 25; i++ )

skoro znam rozmiar tej tablicy.

Nie wiem czy o to chodziło.

Nie mniej nadal dostaję dobrą informację zwrotną. dla wprowadzonego z klawiatury: ..- program zwraca 20, czyli jest ok. Nie chce mi tylko niczego wyświetlać.
P-95776
pekfos
» 2013-11-09 14:34:00
Podaj kod.
P-95777
Zebrak
Temat założony przez niniejszego użytkownika
» 2013-11-09 14:40:00
C/C++
for( i = 0; i = 25; i++ )
{
    if( c == kody[ i ] )
    {
        m = i;
    }
}

Zapewne się mylę, ale ja rozumię tą pętlę w ten sposób:

na początku licznik jest ustawiony na i=0, pętla bedzie się powtarzać 26 razy.
tylko raz w ciągu tych 26 razy zdarzy się sytuacja, że zmianna string c odpowiada stringowi na któryms tam miejscu w tablicy i wtedy to miejsce w tablicy zostanie przekazane do zmiennej m.

Natomiast w przypadku poniżej pętla wykonywac sie będzie tylko do momentu kiedy stringi będą sobie odpowiadały.

C/C++
for( i = 0; por = 1; i++ )
{
    if( c == kody[ i ] )
    {
        por = 1;
        m = i;
    }
}

Niestety, ale to mnie przerosło. O ile program tłumaczący tekst na alfabet morsea działą wybornie, o tyle w druga stronę mam kłopot. I to kłopo z wyświetleniem, bo miejsce tablicy jest zwracane dobrze.
P-95779
pekfos
» 2013-11-09 14:44:42
P-95780
« 1 » 2 3
  Strona 1 z 3 Następna strona