pw1602 Temat założony przez niniejszego użytkownika |
Podanie wartości tablicy przez użytkownika » 2014-11-15 21:36:22 W jaki sposób mogę podać wartość tablicy przed jej zadeklarowaniem? Korzystam z Microsoft Visual C++ 2010 Exress i po przez napisanie: cin >> nIlosc; string sT[ nIlosc ]; program automatycznie zaznacza mi błąd przy nIlosc w tablicy, że musi być to wartość stała. Jest jakiś sposób na obejście tego? |
|
1aam2am1 |
» 2014-11-15 21:39:40 Tablice alokowane dynamicznie wyszukaj sobie w google
http://cpp0x.pl/kursy/Kurs-C++/Dynamiczne-zarzadzanie-pamiecia-new-i-delete/307 |
|
pw1602 Temat założony przez niniejszego użytkownika |
» 2014-11-15 21:43:23 A czy jest możliwość, aby zrobić to bez wskaźników i dynamicznego lokowania? Nie jestem jeszcze przy wskaźnikach, a chciałem w jakiś sposób skorzystać z tego co aktualnie potrafię.
PS. Kończę 1 poziom kursów. |
|
1aam2am1 |
» 2014-11-15 21:46:56 std::vector < typ tablicy > nazwa ( ilość elementów ); |
|
pw1602 Temat założony przez niniejszego użytkownika |
» 2014-11-15 21:54:08 Nadal jest to dla mnie niezrozumiałe. Po za tym program informuje mnie, że vector nie jest zadeklarowany, a w typ tablicy, gdy wpisuję string wyświetla mi, że nazwa nie jest dozwolona. Bardzo bym prosił o pomoc, lecz moja wiedza kończy się akurat na działaniach na plikach (początkowa lekcja), czyli na poziomie 4 kursu na tej stronie. |
|
1aam2am1 |
» 2014-11-15 22:02:33 #include "vector" #include "iostream"
int main() { int liczba; std::cout << "Podaj rozmiar tablicy" << std::endl; std::cin >> liczba; std::vector < std::string > tablica( liczba ); }
|
|
pw1602 Temat założony przez niniejszego użytkownika |
» 2014-11-15 22:11:49 #include <iostream> #include <conio.h> #include <string> #include <fstream> #include <vector> using namespace std; void vOtworz( string sT[], int wyrazy ) { ifstream Plik; string sWiersz; Plik.open( "C:/Users/Admin/Desktop/C++/plik.txt" ); if( !Plik.good() ) cout << "Problem z otwarciem pliku!" << endl; while( getline( Plik, sWiersz ) ) { for( int i = 0; i < wyrazy; i++ ) { size_t Znaleziona = sWiersz.find( sT[ i ] ); if( Znaleziona != string::npos ) cout << sWiersz << endl; } } } int main() { int sWyrazy; cout << "Podaj ilosc wyrazow do wyswietlenia: "; cin >> sWyrazy; vector < string > sT( sWyrazy ); for( int i = 0; i < sWyrazy; i++ ) { cout << "Podaj wyraz: "; cin >> sT[ i ]; } vOtworz( sT, sWyrazy ); _getch(); return 0; } Tak wygląda mój kod programu. Przy wywołaniu funkcji vOtworz mam błąd, a mianowicie nie jest dozwolona konwersja z vector na string , a przynajmniej tak mnie informuje program(przynajmniej tak wychodzi z mojego tłumaczenia :P) PS. Czy jest możliwe, że tylko Visual C++ wykazuje takie błędy, a w np. CodeBlocks czy innym programie będę mógł normalnie za pomocą cin >> nIlosc; string sT[ nIlosc ]; na zadeklarowanie tablicy? |
|
1aam2am1 |
» 2014-11-15 22:14:54 #include <iostream> #include <conio.h> #include <string> #include <fstream> #include <vector> using namespace std; void vOtworz( std::vector < std::string > & sT, int wyrazy ) { ifstream Plik; string sWiersz; Plik.open( "C:/Users/Admin/Desktop/C++/plik.txt" ); if( !Plik.good() ) cout << "Problem z otwarciem pliku!" << endl; while( getline( Plik, sWiersz ) ) { for( int i = 0; i < wyrazy; i++ ) { size_t Znaleziona = sWiersz.find( sT[ i ] ); if( Znaleziona != string::npos ) cout << sWiersz << endl; } } } int main() { int sWyrazy; cout << "Podaj ilosc wyrazow do wyswietlenia: "; cin >> sWyrazy; vector < string > sT( sWyrazy ); for( int i = 0; i < sWyrazy; i++ ) { cout << "Podaj wyraz: "; cin >> sT[ i ]; } vOtworz( sT, sWyrazy ); _getch(); return 0; }
|
|
« 1 » 2 |