Problem z strcmp w if'ie
Ostatnio zmodyfikowano 2012-06-02 16:00
Trix Temat założony przez niniejszego użytkownika |
Problem z strcmp w if'ie » 2012-06-01 09:54:33 if( strcmp( str, "test" ) == 0 )
Gdzie, char str[512] zawiera ciąg znaków wczytanych z pliku (spr. czy dobrze wczytuje, okazało się, że tak, dobrze), nie wczytuje żadnych białych znaków, bo spr. kilkakrotnie plik z tym tekstem. Zawsze, czy ciąg jest taki sam, czy nie pokazuje błąd tzn. kod po else. Przed napisaniem tego tematu, porobiłem kilka testów, spr. czy str jest sobie równy i tu się dobrze wykonało, stworzyłem nową zmienną char cc[512]= "test";, ciągi nie są sobie równe. |
|
xevuel |
» 2012-06-01 10:01:02 Wypisz sobie na ekran to str, czy na pewno jest równe "test", czy nie zawiera na końcu np. znaku nowej linii. strcmp |
|
madmike44 |
» 2012-06-01 11:37:23 Jednak musi być jakaś różnica.... Prosty kod: #include <iostream> #include <cstring>
int main() { char str[ 512 ] = "test"; if( strcmp( str, "test" ) == 0 ) { std::cout << "Success!"; } else { std::cout << "Error!!!"; } }
wykonuje się poprawnie (teksty są równe), więc najprawdopodobniej Twoje teksty różnią się od siebie :) |
|
yoogi |
» 2012-06-01 21:34:18 Najprawdopodobniej funkcja w przypadku identycznych tekstów zwraca 0, a w innym przypadku wartość niezerową. Postaw wykrzyknik w if'ie :) |
|
SeaMonster131 |
» 2012-06-01 23:37:27 Nie wiem jak Tobie, ale ten kod co podałeś to działa poprawnie w Code::Blocks 10.05 z gcc. |
|
ison |
» 2012-06-02 16:00:11 @yoogi przecież napisał if( strcmp( str, "test" ) == 0 ) |
|
« 1 » |