faustin Napisano Grudzień 24, 2021 Udostępnij Napisano Grudzień 24, 2021 Witam mam za zadanie napisac program , który bedzie oczytywał dane z pliku tekstowego , w , który znajdują sie osoby oraz ich wiek i znajdywał osobe najstarsza sposród tych zamieszczonych w tym pliku osób, tyle tylko ,że w ogóle nie wczytuje mi nawet danych z tego pliku do konsoli juz na samym początku.... #include <iostream> #include<cstdlib> #include<fstream> #include<string> using namespace std; int main() { string imie; ifstream fin("datami.txt"); cout<<"to jest zawartośc pliku txt"; char ch; while(fin.get(ch)) { cout<<ch; } fin.close(); return 0; } Link do komentarza Share on other sites More sharing options...
_LM_ Grudzień 24, 2021 Udostępnij Grudzień 24, 2021 Zdaje się że tekst wczytuje się do typu string, lub tablicy char a nie pojedynczego znaku Link do komentarza Share on other sites More sharing options...
faustin Grudzień 24, 2021 Autor tematu Udostępnij Grudzień 24, 2021 Czyli jak powinnam to napisać ? Link do komentarza Share on other sites More sharing options...
Popularny post pmochocki Grudzień 24, 2021 Popularny post Udostępnij Grudzień 24, 2021 (edytowany) Może jakaś książka by się Tobie przydała... EDIT: Z tej samej książki: #include <iostream> #include <string> #include <fstream> #include <sstream> int main () { std::ifstream inFile ("file_console_05.txt", std::ifstream::in); std::string line; while( std::getline(inFile, line) ) { std::stringstream sline(line); std::string name, surname; int age{}; sline >> name >> surname >> age; std::cout << name << "-" << surname << "-"<< age << std::endl; } return 0; } Edytowano Grudzień 24, 2021 przez pmochocki 2 1 Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
faustin Grudzień 24, 2021 Autor tematu Udostępnij Grudzień 24, 2021 Dziękuję za zainteresowanie ale błąd był taki że nie dałam pliku tekstowego do tego samego folderu co projekt Link do komentarza Share on other sites More sharing options...
_LM_ Grudzień 24, 2021 Udostępnij Grudzień 24, 2021 2 minuty temu, faustin napisał: błąd był taki że nie dałam pliku tekstowego do tego samego folderu co projekt Sugerujesz że dało się ten .txt odczytać do zwykłego char - a? Link do komentarza Share on other sites More sharing options...
faustin Grudzień 24, 2021 Autor tematu Udostępnij Grudzień 24, 2021 Szczerze to nie wiem już ale próbowałam różnymi sposobami dawałam różne kody które odczytywały pliki tekstowe ale żadne nie działały mimo że program kompilowal się i błąd tkwił że po prostu nie dałam pliku txt do tego folderu co trzeba. Link do komentarza Share on other sites More sharing options...
faustin Grudzień 24, 2021 Autor tematu Udostępnij Grudzień 24, 2021 A tak jeszcze z ciekawości zapytam gdybym miała plik tekstowy określający przyrost procentowy wartości kryptowaluta i chciałabym na tej podstawie napisać program który odczytawszy ten plik tekstowy wybierał by ta kryptowaluta która jest najbardziej opłacalna to co trzeba by było zrobić? Wtedy czasem nie trzeba by było wczytywać tego char znak po znaku i patrzeć gdzie jest '-' bo za '-' jest wartość liczbowa którą trzeba porównać ? Mój plik tekstowy to Bitcoin-7% Altcoin-8% Itp jest ich z 20 Link do komentarza Share on other sites More sharing options...
H1M4W4R1 Grudzień 24, 2021 Udostępnij Grudzień 24, 2021 25 minut temu, faustin napisał: A tak jeszcze z ciekawości zapytam gdybym miała plik tekstowy określający przyrost procentowy wartości kryptowaluta i chciałabym na tej podstawie napisać program który odczytawszy ten plik tekstowy wybierał by ta kryptowaluta która jest najbardziej opłacalna to co trzeba by było zrobić? Wtedy czasem nie trzeba by było wczytywać tego char znak po znaku i patrzeć gdzie jest '-' bo za '-' jest wartość liczbowa którą trzeba porównać ? https://stackoverflow.com/questions/14265581/parse-split-a-string-in-c-using-string-delimiter-standard-c https://www.cplusplus.com/reference/string/string/c_str/ 1 1 Link do komentarza Share on other sites More sharing options...
faustin Grudzień 24, 2021 Autor tematu Udostępnij Grudzień 24, 2021 dziekuje ale to i tak w moim przypdku nie działa #include <iostream> #include<cstdlib> #include<fstream> #include<string> using namespace std; fstream newfile; newfile.open("C:\\Users\\Laptop\\Desktop\\datami.txt",ios::in); //open a file to perform read operation using file object if (newfile.is_open()){ //checking whether the file is open string tp; while(getline(newfile, tp)){ //read data from file object and put it into string. // cout<<"wczytano plk:"; cout << tp << "\n"; //print the data of the string } // string tp; } string tp; string delimeter="-"; // string token=tp.substr(0,tp.find(delimeter)); string token= tp.erase(0,tp.find(delimeter)+delimeter.length()); // size_t pos=0; // string token; // while((pos=tp.find(delimeter)))!= //string token=tp.substr(0,tp.find(delimeter)); //string s= tp.erase(0,pos+delimeter.length()); cout<<token; return 0; } Link do komentarza Share on other sites More sharing options...
H1M4W4R1 Grudzień 25, 2021 Udostępnij Grudzień 25, 2021 (edytowany) 42 minuty temu, faustin napisał: dziekuje ale to i tak w moim przypdku nie działa Tradycyjnie ktoś zawalił z klamrami... #include <iostream> #include<cstdlib> #include<fstream> #include<string> using namespace std; int main() { fstream fileStream; const char delimiter = '-'; // TODO: update file address fileStream.open(R"(C:\Users\nov11\Documents\Datami.txt)", ios::in); // open a file to perform read operation using file object if (fileStream.is_open()){ // checking whether the file is open string tp; while(getline(fileStream, tp)){ // read data from file object and put it into string. size_t charIndex; cout << tp << "\n"; // print the data of the string charIndex = tp.find(delimiter); // find the index of the delimiter tp = tp.substr(charIndex + 1, tp.size() - charIndex - 2); // get the substring from the delimiter, remove percent mark and delimiter on the way cout << tp << "\n"; int percentage_value = stoi(tp); // convert the string to integer // TODO: use percentage value to find max value } } return 0; } W dużym uproszczeniu - jeżeli musimy coś policzyć dla każdej linijki to umieszczamy to w pętli, nie poza pętlą... Zwłaszcza w przypadku dynamicznej operacji na plikach. P.S. tak ten kod da się uprościć z kilku zmiennych 😉 Zostały dla lepszej przejrzystości. Edytowano Grudzień 25, 2021 przez H1M4W4R1 1 Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »