Чтение и запись текстовых файлов C++ не работает
Привет. Я хотел научиться читать и писать файлы на C++. Чтобы лучше понять это, я написал код ниже. Приведенный ниже код позволяет пользователю создать свой собственный текстовый файл. После этого они могут записать в него информацию. Наконец, содержимое файла будет напечатано на консоли.
Вот в чем проблема: код позволит пользователю создать текстовый файл, но не позволит ему ничего вводить в этот файл. Кроме того, поскольку программа останавливается после строки с надписью "Пожалуйста, введите текст:" (имейте в виду, что программа не позволит пользователю ничего вводить в этот момент), я не запускаю последнюю часть кода, которая должна прочитать то, что было в файле.
Одна вещь, которую я заметил, заключалась в том, что если я вырезал часть кода, которая позволяет пользователю писать имя файла (я имею в виду, что я ставлю имя файла по умолчанию вместо того, чтобы позволить пользователю вводить свое собственное имя файла), то код работает. Однако я хочу дать пользователю возможность сделать свой собственный файл записью в нем, поэтому я не понимаю, почему эта версия не будет работать.
Я не смог найти информацию об этом, поэтому я хотел бы знать, есть ли кто-нибудь на "codeproject.com-это может мне помочь. Спасибо.
Что я уже пробовал:
#include <iostream> #include <fstream> #include <sstream> #include <string> using namespace std; int main() { cout << "Type in file name followed by the extention \".txt\"" << endl; string user_file; cin >> user_file; fstream file; //object of fstream class file.open(user_file, ios::out); if (!file) { cout << "File could not open" << endl; return 0; } cout << "File created." << endl; //write text into file char user_input[256]; cout << "Please enter text: \n"; std::cin.getline(user_input, 256); file << user_input; //cout << "For testing. User input is: " + user_input<< endl; file.close();//close the file system("pause"); //open file to be read file.open(user_file, ios::in); if (!file) { cout << "File could not open" << endl; return 0; } cout << "Information in file: "; std::string line_; if (file.is_open()) { while (getline(file, line_)) { std::cout << line_ << endl; } file.close(); std::cin.get();//for testing: will pause the screen } return 0; }