@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();


Как это исправить?
  • Вопрос задан
  • 101 просмотр
Решения вопроса 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();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
CTRL+ Москва
от 250 000 до 320 000 ₽
CTRL+ Москва
от 200 000 до 300 000 ₽
CTRL+ Белград
от 250 000 до 320 000 ₽
22 нояб. 2024, в 02:56
10000 руб./за проект
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект