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

Podanie wartości tablicy przez użytkownika

Ostatnio zmodyfikowano 2014-11-15 22:32
Autor Wiadomość
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:
C/C++
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?
P-120704
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
P-120706
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.
P-120707
1aam2am1
» 2014-11-15 21:46:56
std::vector < typ tablicy > nazwa ( ilość elementów );
P-120709
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.
P-120712
1aam2am1
» 2014-11-15 22:02:33
C/C++
#include "vector"
#include "iostream"

int main()
{
    int liczba;
   
    std::cout << "Podaj rozmiar tablicy" << std::endl;
   
    std::cin >> liczba;
   
    std::vector < std::string > tablica( liczba ); //deklaracja tablicy o zmiennej wielkości o rozmiarze podanym przez użykownika
}
P-120715
pw1602
Temat założony przez niniejszego użytkownika
» 2014-11-15 22:11:49
C/C++
#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ą
C/C++
cin >> nIlosc;
string sT[ nIlosc ];
 na zadeklarowanie tablicy?
P-120717
1aam2am1
» 2014-11-15 22:14:54
C/C++
#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;
}
P-120720
« 1 » 2
  Strona 1 z 2 Następna strona