Rozdzial 35
Ostatnio zmodyfikowano 2017-01-15 14:56
bartman Temat założony przez niniejszego użytkownika |
Rozdzial 35 » 2017-01-15 12:31:43 Witam, Posiadam kompilator XCode, programuje w macOS. Z 35 lekcji kopiuje poniższy przykład do kompilatoru: #include <iostream> #include <fstream>
int main() { std::ifstream plik( "dane.txt" ); if( !plik.good() ) return 0; int iPozycjaStartowa = 4; plik.seekg( iPozycjaStartowa ); int iLiczba; plik >> iLiczba; int iWczytanychZnakow = plik.tellg() - iPozycjaStartowa; std::cout << "Liczba: " << iLiczba << std::endl; std::cout << "Wczytano " << iWczytanychZnakow << " znakow" << std::endl; return 0; }
i pokazuje mi następujaący bląd w 16 wersie: Use of overloaded operator '-' is ambiguous (with operand types'pos_type... Otwierając ten samy przykład na online kompilatorze: https://www.tutorialspoint.com/compile_cpp_online.php żadnego błędu nie pokazuje. Z góry dziękuję za odpowiedź. |
|
mokrowski |
» 2017-01-15 14:13:48 Kompilator online którego użyłeś, pokazuje ostrzeżenie: main.cpp:16:44: warning: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second: [enabled by default] int iWczytanychZnakow = plik.tellg() - iPozycjaStartowa;
Jeśli nawet nie znasz angielskiego, możesz to wklepać do Google translate i powie Ci że: "ostrzeżenie: ISO C ++ mówi, że to jest niejednoznaczne, chociaż najgorsza konwersja pierwszego jest lepsza niż najgorsza konwersja drugiego" #include <iostream> #include <fstream> #include <string>
int main() { std::ifstream plik( "dane.txt" ); if( not plik ) exit( EXIT_FAILURE ); size_t iPozycjaStartowa = 4; plik.seekg( iPozycjaStartowa ); int iLiczba; plik >> iLiczba; size_t iWczytanychZnakow = static_cast < size_t >( plik.tellg() ) - iPozycjaStartowa; std::cout << "Liczba: " << iLiczba << std::endl; std::cout << "Wczytano " << iWczytanychZnakow << " znakow" << std::endl; }
|
|
bartman Temat założony przez niniejszego użytkownika |
» 2017-01-15 14:56:17 Dziekuje |
|
« 1 » |