2016-03-11 6 views
-1

Я пишу программу, имитирующую терминал на вашем компьютере. Один из вариантов - записать текст и сохранить его в существующий текстовый файл, однако мне не удалось сохранить весь ввод в файл.Сохранить вход пользователя в текстовый файл 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); это результат: Using 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; Я алло ср, чтобы напечатать что-то и сохранить его в файл, но он сохраняет только самое первое слово:

Using std::cin >> writeToFile;

Любые идеи о том, почему это происходит? Я уже проверял другие вопросы и сайты, но я не смог решить эту проблему.

+3

Пожалуйста, напишите [Минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve). Возможный дубликат: [C++ - Почему std :: getline() пропускает ввод после форматированного извлечения?] (Http://stackoverflow.com/questions/21567291/why-does-stdgetline-skip-input-after-a-formatted -экстракция) – MikeCAT

+0

Что на самом деле «копировать»? –

+0

@ πάνταῥεῖ извините, что это была переменная, которую я использовал для копирования «writeToFile», но забыл удалить при публикации. Я уже исправил код –

ответ

Смежные вопросы