Я начал изучать c++ на прошлой неделе, и я наконец узнал достаточно, чтобы попытаться встать на свои собственные ноги. хорошо угадайте, что у меня есть проблема. программа, которую я пытаюсь сделать, будет запрашивать файл, уже существующий или создающий новый, если имя не найдено и помещает информацию в строки файла. когда вы вводите -1, вы закрываете программу.
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
string x;
string Input;
int line=0;
cout << "Please enter the name of the file with the file type" << endl;
cin >> x;
ofstream SelectedFile;
SelectedFile.open(x);
while(Input != "-1"){
cout << "Enter the content of the " << line <<" line, or type -1 to quit." << endl;
cin >> Input;
line++;
}
SelectedFile.close();
}
Я предполагаю, что у вас ошибка компиляции, потому что std::ofstream::open
не принимает std::string
в качестве аргумента в стандарте С++ 98. Попробуй это:
SelectedFile.open(x.c_str());
Или скомпилируйте с поддержкой С++ 11.
Обновление: где вы пишете вещи в файл? Я думаю, вы забыли написать эту часть
SelectedFile << line << std::endl ;
c_str
), которая является простой массив типа char
. Многие методы C ++ используют только один или другой, но, как показал Соруш, между ними легко выполнить преобразование (просто не всегда очевидно, когда вы только начинаете).