• Advertisement
Sign in to follow this  

problem writing text to a file in C++

This topic is 3877 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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.
#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;
}

How can I fix that?

Share this post


Link to post
Share on other sites
Advertisement
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

Share this post


Link to post
Share on other sites
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
--

Share this post


Link to post
Share on other sites
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);

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
ah thank you :) file input output is not my strong point, thus why im going over it now.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement