Я пишу программу, имитирующую терминал на вашем компьютере. Один из вариантов - записать текст и сохранить его в существующий текстовый файл, однако мне не удалось сохранить весь ввод в файл.Сохранить вход пользователя в текстовый файл C++
Вот что вызывает запись в файл:
else if(command == "write"){
ofstream myfile (arg.c_str());
string writeToFile;
std::cout << "Opening file '"<< arg.c_str() << "'...\n" << std::endl;
std::cout << "Plese enter what you want to write into the file:\n" << std::end;
std::getline(std::cin, writeToFile);
if (myfile.is_open()){
myfile << writeToFile << "\n";
myfile.close();
}
std::cout << "You wrote: " << writeToFile << std::endl;
std::cout << "File succesfully updated. \n" << std::endl;
commandStart();
}
Однако, когда я использую std::getline(std::cin, writeToFile);
это результат:
Это не позволяет мне напечатать что угодно, чтобы сохранить в файл и он автоматически закрывается, однако, когда я использую это:
else if(command == "write"){
ofstream myfile (arg.c_str());
string writeToFile;
std::cout << "Opening file '"<< arg.c_str() << "'...\n" << std::endl;
std::cout << "Plese enter what you want to write into the file:\n" << std::end;
std::cin >> writeToFile;
if (myfile.is_open()){
myfile << writeToFile << "\n";
myfile.close();
}
std::cout << "You wrote: " << writeToFile << std::endl;
std::cout << "File succesfully updated. \n" << std::endl;
commandStart();
}
с помощью std::cin >> writeToFile;
Я алло ср, чтобы напечатать что-то и сохранить его в файл, но он сохраняет только самое первое слово:
Любые идеи о том, почему это происходит? Я уже проверял другие вопросы и сайты, но я не смог решить эту проблему.
Пожалуйста, напишите [Минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve). Возможный дубликат: [C++ - Почему std :: getline() пропускает ввод после форматированного извлечения?] (Http://stackoverflow.com/questions/21567291/why-does-stdgetline-skip-input-after-a-formatted -экстракция) – MikeCAT
Что на самом деле «копировать»? –
@ πάνταῥεῖ извините, что это была переменная, которую я использовал для копирования «writeToFile», но забыл удалить при публикации. Я уже исправил код –