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

Wprowadzanie tekstu do pliku

Ostatnio zmodyfikowano 2017-01-07 18:20
Autor Wiadomość
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ą
C/C++
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ź ;)
P-156168
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();
P-156169
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
P-156170
mokrowski
» 2017-01-07 15:40:07
Co tu ma nie działać...?
C/C++
#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';
    }
    // ... itd...
}
P-156171
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ść.
C/C++
#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ę

C/C++
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.

P-156173
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().
» Kurs C++ » Poziom 1Obsługa strumienia wejściowego lekcja
P-156177
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.
P-156180
« 1 »
  Strona 1 z 1