@dyrtage6

Некорректно вводится текст в текстовый документ, как исправить?

У меня есть код, который использует fstream. Все записывается в файл "file.txt".
Когда я ввожу 2 или больше слов, то в файле "file.txt" каждое слово находится на своей отдельной строке, как бы я не пытался это исправить.

Вот как выглядит этот кусок код
string WritingToFile, path = "file.txt";
fstream out;
cout << "Пиши все что хочешь\n";

while (WritingToFile != "Конец записи") {
	ofstream out(path , ios::app);
	SetConsoleCP(1251);
	cin >> WritingToFile;
	out << WritingToFile << endl;
	SetConsoleCP(866);
}
out.close();


Как это исправить?
  • Вопрос задан
  • 98 просмотров
Решения вопроса 1
Заюзать функцию getline, так как при вводе в поток ввода при помощи оператора <<, ввод происходит до первого пробельного символа. Почитайте как работают потоки ввода/вывода, какие есть функции для доступа к ним.

Также установите проверку на открытие файла и проверку чтобы не писать условие "выхода" в файл, как в примере кода ниже.

string WritingToFile, path = "file.txt";
	
	ofstream out(path , ios::app);
	
	if(out.is_open()) {

		cout << "Write whatever you want\n";

		while (WritingToFile != "exit") {
			SetConsoleCP(1251);
			getline(cin, WritingToFile);
			
			if(WritingToFile != "exit")
				out << WritingToFile << endl;

			SetConsoleCP(866);
		}
	}

	out.close();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы