Program się wyłącza,nie chce zwrócić wartości tablicy z funkcji.#C++
Ostatnio zmodyfikowano 2017-03-30 23:39
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 #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; cout <<( "Slowo: " ) << array << endl; } else if( menu == 2 ) { data2 = downloadFromFile(); char array[ data2.size() + 1 ]; 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. |
|
michal11 |
» 2017-03-30 23:39:39 Próbujesz zwrócić lokalną zmienną, ta tablica po wyjściu z funkcji teoretycznie już nie istnieje. |
|
« 1 » |