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

Program się wyłącza,nie chce zwrócić wartości tablicy z funkcji.#C++

Ostatnio zmodyfikowano 2017-03-30 23:39
Autor Wiadomość
Will332
Temat założony przez niniejszego użytkownika
Program się wyłącza,nie chce zwrócić wartości tablicy z funkcji.#C++
» 2017-03-30 22:54:28
C/C++
#include <iostream>
#include <fstream>
#include <string>
#include <cstring>
#define VALUE 1024
using namespace std;

string downloadFromFile()
{
    string data;
    string data2;
    ifstream newFile;
    cout <<( "Jeśli chcesz wczytać dane z pliku stworz plik o nazwie: dane.txt i wpisz do niego tekst." ) << endl;
    cin.get();
    newFile.open( "dane.txt" );
    if( newFile.is_open() )
    {
        while( newFile.good() )
        {
            getline( newFile, data );
            cout <<( "Pobrano:" ) << data << endl;
            if( !( data.empty() ) )
            {
                data2 = data;
            }
        }
    }
    else
    {
        cout << "Błąd! Nie można otworzyć pliku!";
    }
   
    newFile.close();
   
   
   
    return data2;
}

char * uploadChar()
{
    string data2;
    char array[ VALUE ];
    int menu;
   
    ERROR:
    cout <<( "Aby pobrać ciąg znaków z klawiatory - 1" ) << endl;
    cout <<( "Aby pobrać ciąg znaków z pliku - 2" ) << endl;
    cin >> menu;
   
    if( menu == 1 )
    {
        cout << "Podaj slowo lub zdanie:   (Tablica ustawiona na: " << VALUE << " znakow)" << endl;
        cin >> array;
        //cin.getline(array, VALUE);
        cout <<( "Slowo: " ) << array << endl;
    }
    else if( menu == 2 )
    {
       
        data2 = downloadFromFile();
       
        char array[ data2.size() + 1 ]; //konwersja string na tablice zeby moc ją zwrocić jako wskaźnik
        strcpy( array, data2.c_str() );
    }
    else
    {
        cout << "Blednea opcja" << endl;
        cout << "ERROR" << endl;
        goto ERROR;
    }
   
    return array;
}

int main()
{
    cout <<( uploadChar() );
    return 0;
}
Czemu program nie wykonuje polecenia "cout<<(uploadChar());". Program po wykonaniu warunków się kończy, a powinien wykonać "patrz wyżej". Nie zwraca wartości do int maina.
P-159620
michal11
» 2017-03-30 23:39:39
Próbujesz zwrócić lokalną zmienną, ta tablica po wyjściu z funkcji teoretycznie już nie istnieje.
P-159623
« 1 »
  Strona 1 z 1