Wprowadzanie tekstu do pliku
Ostatnio zmodyfikowano 2017-01-07 18:20
Krway Temat założony przez niniejszego użytkownika |
Wprowadzanie tekstu do pliku » 2017-01-07 15:07:45 Witam. Mam problem z wprowadzeniem linijki tekstu do pliku. gdy za pomocą string dane; fstream APr( "pracownicy.txt" ); cin >> dane; APr << dane;
Po tym tekst zostaje podzielony przez spacje i każdy wyraz zapisuje mi do nowej linijki. Chciałem osiągnąć coś takiego, że wprowadzam dane ciąg wyrazów oddzielony spacjami i ten ciąg zostanie zapisany w pliku w jednej linii. Dzięki za odpowiedź ;) |
|
karambaHZP |
» 2017-01-07 15:10:41 Jeśli masz zamiar wczytać całe zdanie do stringa użyj std::getline(), a do pliku wypisz APr << dane.data(); |
|
Krway Temat założony przez niniejszego użytkownika |
» 2017-01-07 15:17:45 Kiedy używam getline(cin,dane); Program go omija i pracuje dalej. Nie rozumiem, wygooglowałem szybko tą funkcje i wpisałem ją wg. http://www.cplusplus.com/reference/string/string/getline/ Czyli powinno działać a nie działa. Funkcja dane.data(); też nic nie pomogła ;/ Dzięki za tak szybką odpowiedź :D |
|
mokrowski |
» 2017-01-07 15:40:07 Co tu ma nie działać...? #include <iostream> #include <fstream> #include <string>
using namespace std;
int main() { string line; ofstream file( "/tmp/data.txt" ); cout << "Podaj 3 linie tekstu kończąc każdą z nich <enter>\n"; for( size_t i = 0; i < 3; ++i ) { getline( cin, line ); file << line << '\n'; } }
|
|
Krway Temat założony przez niniejszego użytkownika |
» 2017-01-07 16:07:19 Sprawdziłem twój kod u mnie bo już nawet kompilator podejrzewałem. Pociąłem swój kod na kawałeczki i już wiem czemu nie działa. Tylko teraz nie wiem jak to obejść. #include <iostream> #include <fstream> #include <string> using namespace std; int main() { string pom; char podloga = '_'; int liczbaMgr = 0; int liczbaSpr = 0; cout << "Wpisz ile ma byc magazynierow (optymalna liczba 2): "; cin >> liczbaMgr; cout << "Wpisz ile ma byc sprzedawcow (optymalna licbza 3): "; cin >> liczbaSpr; ofstream APr( "pracownicy.txt" ); string DaneSzef; APr << "SZEF "; getline( cin, DaneSzef ); APr << DaneSzef; }
W tym kodzie właśnie występuje ten problem ale, jeżeli pozbędę się cout << "Wpisz ile ma byc magazynierow (optymalna liczba 2): "; cin >> liczbaMgr; cout << "Wpisz ile ma byc sprzedawcow (optymalna licbza 3): "; cin >> liczbaSpr;
Wszystko zaczyna działać. Pomoże ktoś by to jakoś naprawić? Nie chce wszystkiego dzielić na funkcje by wprowadzić dane których chciałbym móc wpisać bardzo wiele. |
|
karambaHZP |
» 2017-01-07 17:43:13 Po użyciu std::cin oczyść bufor strumienia wejściowego, bo zostaje w nim znak nowego wiersza, na który reaguje std::getline . Użyj np. std::ignore(). Obsługa strumienia wejściowego |
|
Krway Temat założony przez niniejszego użytkownika |
» 2017-01-07 18:20:52 Dzięki, że przypominałeś mi o tej lekcji. Myślałem o niej ale myślałem, że to by było za proste. |
|
« 1 » |