• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Odczyt pliku z rozszerzeniem cpp

Object Storage Arubacloud
0 głosów
370 wizyt
pytanie zadane 17 września 2018 w C i C++ przez Hinzeq Użytkownik (860 p.)

Cześć,

chcę stworzyć prostą aplikację sumującą dwie liczby. Ale chcę to zrobić w dwóch osobnych plikach.
Plik "główny" wczytywał by plik "drugi" w którym były by zawarte instrukcje. Niestety coś nie wychodzi..

Pierwszy plik:

#include <iostream>
#include <fstream>
#include <cstdlib>

using namespace std;

int main()
{
    string linia[100];
    int nr_linii=1,licznik=0;

    fstream test;
    test.open("plik_test.cpp",ios::in);

    if(test.good()==false) cout<<"Blad przy wczytywaniu\n";

    while(!test.eof()){
        getline(test,linia[licznik]);
        linia[licznik];
        licznik++;
    }

    test.close();
    test.clear();

    for(int i=0;i<licznik;i++){
        cout<<linia[licznik]<<endl;
    }

    return 0;
}

Drugi plik:

    int x,y;
    cout<<"Podaj pierwsza liczbe: ";
    cin>>x;
    cout<<"Podaj druga liczbe: ";
    cin>>y;
    cout<<"Suma: "<<x+y;

Pewnie jest tutaj masa błędów, ale nie wiem gdzie ich szukać. Prosił bym o nakierowanie co jest źle. O ile w ogóle jest coś takiego możliwe co chcę zrobić.

I pytanie na przyszłość, czy wczytywanie mogę dokonać w funkcji void, zapisać wynik w zmiennej, a potem przekazać do funkcji main?

Pozdrawiam,
Hinzeq :)

komentarz 17 września 2018 przez Mixxy3k Użytkownik (730 p.)
edycja 17 września 2018 przez Mixxy3k

Oj kolego wygląda to bardzo tragicznie xD
Pominę błędy w kodzie związane z samym kalkulatorem
Tak więc

#include <BIBLIOTEKA> 
/* Jak dobrze wiemy w ten sposób dołączamy biblioteki np iostream */

#include "NAZWA_PLIKU.cpp" 
/*Przy takim kodzie IDE przy kompilacji szuka pliku NAZWA_PLIKU.cpp w folderze projektowym (tam gdzie znajduje się twój nieszczęsny main.cpp")*/

Tak ogólnie pierwsze co możesz zrobić to oglądać tutoriale pana Mirka po kolei od 1 odcinka wykonując przykłady oraz używać mądrzej Google (wciśnij i pierwszy link :3)

Micro EDIT:
Tak ogólnie to nie baw się w ręczne ładowanie i kompilowanie plików cpp przy pomocy kodu cpp jest to trudne (pewnie możliwe ale w kij trudne i bezsensowne).

komentarz 17 września 2018 przez Hinzeq Użytkownik (860 p.)
Dzięki, to biorę się dalej do roboty :)

1 odpowiedź

+1 głos
odpowiedź 17 września 2018 przez criss Mędrzec (172,590 p.)
wybrane 17 września 2018 przez Hinzeq
 
Najlepsza
Ty chyba pomyliłeś c++ z jakimś procesorem tekstu w których takie cuda są możliwe. Obstawiam, że chciałbyś mieć kod c++ w osobnym pliku i run-time ten kod sobie wczytać a potem wykonać (to pewnie chciałeś zrobić w linii 19)? C++ jest językiem kompilowanym do kodu maszynowego który następnie jest wykonywany bezpośrednio przez procesor. Nie jest wykonywany przez interpreter (czyli kod w postaci tekstu dynamicznie parsowany i interpretowany - tak najwyraźniej myślałeś) ani nawet nie jest wykonywany przez jakąś "maszyne wirtualną" w postaci instrukcji jako ciąg bajtów specyficznych dla tej maszyny. Już to wiedząc, łatwo dojść do wniosku, że nie możesz sobie wykonać kodu c++. Nawet jakbyś jakoś przetłumaczył na instrukcje odpowiednie dla swojej architektury, to mając między sprzętem a programem jeszcze system operacyjny, nie jesteś w stanie zmusić procesor do ich wykonania. Z tego co mi wiadomo przynajmniej.. W każdym razie musiałbyś zejść na dużo niższy poziom abstrakcji i nie byłaby to kwestia jednej linii kodu c++ tak jak u ciebie ta nieszczęsna linia 19.
komentarz 17 września 2018 przez Hinzeq Użytkownik (860 p.)
Ok, dzięki za odpowiedzi, więc "trochę" jeszcze przede mną.
komentarz 17 września 2018 przez criss Mędrzec (172,590 p.)
Jeśli zawsze jak dotąd pisałeś tylko w jakichś php czy js, to najwyraźniej tak :P
komentarz 18 września 2018 przez draghan VIP (106,230 p.)

Nawet jakbyś jakoś przetłumaczył na instrukcje odpowiednie dla swojej architektury, to mając między sprzętem a programem jeszcze system operacyjny, nie jesteś w stanie zmusić procesor do ich wykonania. Z tego co mi wiadomo przynajmniej.. 

Chyba że osadzisz w programie-hoście kompilator albo interpreter kodu C++. :)

komentarz 18 września 2018 przez criss Mędrzec (172,590 p.)
Kompilator rozwiąże problem tłumaczenia, ale do wykonania ta sama droga. Interpreter.. hmm to już nie do końca się nazywa c++ chyba :P
komentarz 18 września 2018 przez mokrowski Mędrzec (155,700 p.)
O... sam nie widziałem że ktoś się pokusił o takie rozwiązanie :) Nie sprawdzałem ale interesujące mieć REPL w C++ :)

https://github.com/vgvassilev/cling
komentarz 18 września 2018 przez draghan VIP (106,230 p.)

Kompilator rozwiąże problem tłumaczenia, ale do wykonania ta sama droga.

Nie mogę znaleźć teraz, ale parę lat temu bawiłem się kompilatorem który osadzało się w aplikacji-hoście i można było tak ładować moduły, kompilowane w czasie wykonania hosta. Nie jestem tylko pewny, czy to nie był kompilator C. Nie mogę skojarzyć nazwy. Wydaje mi się, że coś z "tiny" w nazwie.

Interpreter.. hmm to już nie do końca się nazywa c++ chyba :P

Teoretycznie nie, ale jeśli kod jest zgodny z zasadami standardu, to co za różnica? ;)

Podobne pytania

+1 głos
0 odpowiedzi 251 wizyt
pytanie zadane 5 sierpnia 2016 w C i C++ przez Dawid679 Nowicjusz (130 p.)
0 głosów
1 odpowiedź 312 wizyt
pytanie zadane 10 maja 2021 w C i C++ przez fsfxvcxv Obywatel (1,160 p.)
0 głosów
0 odpowiedzi 260 wizyt
pytanie zadane 24 marca 2023 w C i C++ przez natalia2002. Początkujący (400 p.)

92,628 zapytań

141,491 odpowiedzi

319,862 komentarzy

62,011 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...