Skocz do zawartości


Zdjęcie

Problem ze stringiem w ofstream


  • Zaloguj się, aby dodać odpowiedź
4 odpowiedzi w tym temacie

#1 Hendra

Hendra
  • Użytkownicy
  • 11 postów

Napisano 13 grudzień 2015 - 11:31

Witajcie :)

Zacząłem uczyć się programowania obiektowego i dochodząc do "ofstream'u" mam problem ze zmienną string, tj. program nie wyświetla mi pierwszego napisanego słowa. 

Oto kod:

#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;
int main()
{
string tekst;
ofstream pliczek;
pliczek.open("tekst.txt") ;
cout<<"Co ma byc zapisane?"<<endl;
cin>>tekst;
getline(cin, tekst) ;
pliczek<<tekst;
pliczek.close() ;
}
ofstream pliczek("tekst.txt")
 
Gdzie może być błąd? :)

  • 0


#2 ~janusz

~janusz
  • Użytkownicy
  • 238 postów

Napisano 13 grudzień 2015 - 15:33

Zgodnie z dokumentacją wydaje się, że źle odczytujesz zmienną "tekst" ze standardowego wejścia

http://www.cplusplus...string/getline/
http://www.cplusplus...tutorial/files/

Pobierasz więc zmienną "tekst" dwukrotnie - wpierw za pomocą cin (standardowa biblioteka C, która niekoniecznie potrafi obsłużyć zmienną string ze spacjami - http://stackoverflow...put-with-spaces) a potem getline (biblioteka string.h), które to nadpisuje wcześniejszą wartość, tutaj szukałbym raczej jakiegoś błędu.

 

programowania obiektowego

 

Daleko temu do programowania obiektowego - to tak swoją drogą.


  • 0

#3 Hendra

Hendra
  • Użytkownicy
  • 11 postów

Napisano 13 grudzień 2015 - 20:05

Pobierasz więc zmienną "tekst" dwukrotnie - wpierw za pomocą cin (standardowa biblioteka C, która niekoniecznie potrafi obsłużyć zmienną string ze spacjami - http://stackoverflow...put-with-spaces) a potem getline (biblioteka string.h), które to nadpisuje wcześniejszą wartość, tutaj szukałbym raczej jakiegoś błędu.

Super, wielkie dzięki :)
Nie pomyślałem o tym. Teraz już wszystko działa.
 

Apropos programowania - tak wiem, ale każdy od czegoś musi zacząć, czyż nie?


  • 0

#4 ~janusz

~janusz
  • Użytkownicy
  • 238 postów

Napisano 14 grudzień 2015 - 19:05

Tak, aczkolwiek nazywajmy rzeczy po imieniu :) - tutaj mamy przykład programowania imperatywnego.


  • 0

#5 Hendra

Hendra
  • Użytkownicy
  • 11 postów

Napisano 19 grudzień 2015 - 21:02

Dobrze! :)
Na pewno się poprawię i będę bardziej precyzyjny.


  • 0


Użytkownicy przeglądający ten temat: 1

0 użytkowników, 1 gości, 0 anonimowych