problem writing text to a file in C++

Started by
4 comments, last by namingway 16 years, 9 months ago
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?
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
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
--
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);

C++: A Dialog | C++0x Features: Part1 (lambdas, auto, static_assert) , Part 2 (rvalue references) , Part 3 (decltype) | Write Games | Fix Your Timestep!

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
ah thank you :) file input output is not my strong point, thus why im going over it now.

This topic is closed to new replies.

Advertisement