#include <iostream>
#include <fstream>
#include <string>
int main()
{
std::ofstream file;
std::string word;
file.open("text.txt", std::ios::app);
for(int i = 0; i < 5; i++)
{
std::cin >> word;
file << word << "\n";
}
file.close();
return 0;
}
problem writing text to a file in C++
This is my first attempt at making a simple textpad in the console with 5 lines.
The problem is whenever there's a space it places the following text on a newline in the text.txt file. also it won't allow for 5 lines if spaces are used sometimes only 1 line dpending.
How can I fix that?
I'm not positive but you could strip out the spacing? Even a space has an ASCII code doesn't it? Remove the space from each string then store it?
-durfy
-durfy
I need the spacing stored as well. It stores in the text file like this;
--
text
text
text
text
text
--
and if the newline \n is taken away it prints out like this
--
texttexttexttexttext
--
--
text
text
text
text
text
--
and if the newline \n is taken away it prints out like this
--
texttexttexttexttext
--
cin only gets one word at a time even if you entered more than one word. If you want to retrieve an entire line at once you must use getline:
std::string input;std::getline(cin, input);
I'm a bit confused by your question phrasing.
The stream extraction operator >> by default splits on whitespace. You show awareness of this by calling the variable you write to 'word' recognizing that it represents a word not a full line. If you are trying to read data from the stream a full line at a time you'll need to use the getline function
The stream extraction operator >> by default splits on whitespace. You show awareness of this by calling the variable you write to 'word' recognizing that it represents a word not a full line. If you are trying to read data from the stream a full line at a time you'll need to use the getline function
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement