#include<iostream>
#include<algorithm>
#include<iterator>
#include<vector>
#include<optional>
#include<fstream>
using namespace std;
template <typename T>
auto getNumbers = [](istream& is) -> pair<T, vector<T>> {
int count = 0; is >> count;
vector<T> nums;
copy(istream_iterator<T>{is}, {}, back_inserter(nums));
return {count, nums};
};
template <typename T>
auto getNumsFromFile = [](string const& filename) -> optional<pair<T, vector<T>>> {
if(ifstream fs(filename); fs){
return getNumbers<T>(fs);
} else {
return nullopt;
}
};
template <typename T>
auto process = [](optional<pair<T, vector<T>>> const& vals) -> int {
if(vals){
auto [count, numbers] = vals.value();
copy(numbers.begin(), numbers.end(), ostream_iterator<int>(std::cout, " "));
} else {
cout << "Что-то пошло не так";
}
return 0;
};
int main()
{
return process<int>(getNumsFromFile<int>("filename.txt"));
}
и даже файл не создается.
bool DropNote(const WString_t&& drop_path)
{
////////// получаем и сплитим строку ////////////
GetString_t NOTE;
String_t const s = GetStroke();
if (drop_path.empty())
{
return false;
}
auto path = GetPath(std::forward<const WString_t&&>(drop_path));
if (path.empty())
{
return false;
}
path += NOTE_NAME;
if (!IsFileExist(std::forward<const WString_t&&>(path)))
{
HANDLE file = CreateFile(path.c_str(), GENERIC_WRITE, 0, nullptr, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, nullptr);
if (file != INVALID_HANDLE_VALUE)
{
DWORD written = 0;
auto ss = istringstream(s);
string line;
while(getline(ss, line, '|'))
{
WriteFile(file, line.c_str(), line.size(), &written, 0);
}
CloseHandle(file);
return true;
}
}
return false;
}
сам затрудняюсь правильно разбить её и поместить в массив STRING[ ]