Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
chaleureux
17 / 20 / 19
Регистрация: 24.12.2014
Сообщений: 973
#1

Формальности для новичка - C++

26.07.2017, 20:40. Просмотров 505. Ответов 27

Начал по немного изучать с++ после перехода с ( языка C# )
Конечно же c# и с++ разные понятие

1) Как создать файл\папку на с++?

Например для создания файла в c# я использовал такую конструкцию:
C#
1
2
string PathDir = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
File.AppendAllText(PathDir + @"file.txt", new[] { DateTime.Now.ToString() });
Нужно ли ( или даже требуется ли) использовать WinAPI функции для таких целей в c++ языке?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.07.2017, 20:40
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Формальности для новичка (C++):

Важно для новичка
Здравствуйте уважаемые участники. Я задам вам вопрос, который является...

OpenGL для новичка
Всем привет. Никак не могу найти книгу по OpenGL и C++, хотя нет, вру, находил....

Компилятор для новичка
будь ласка, дайте (порекомендуйте) компилятор, которым пользуетесь, для...

Книги по c++ для новичка
Подскажите книги по c++ для новичка Знаний в програмировании нет

Олимпиадка для новичка на С++
Сразу влепили усиленную задачу, причем ничего не объяснили по С++. Делай как...

Литература по C++ для новичка
Посоветуйте книги по C++ для новичка,если можно дайте ссылку на скачивание,и...

27
MisterR
67 / 66 / 52
Регистрация: 28.10.2015
Сообщений: 385
Завершенные тесты: 3
26.07.2017, 20:46 #2
C++
1
2
3
#include <windows.h>
...
CreateDirectory(L"c:\\new", NULL);
1
chaleureux
17 / 20 / 19
Регистрация: 24.12.2014
Сообщений: 973
26.07.2017, 20:50  [ТС] #3
MisterR, А можно чуток по подробнее?
а NULL в конце это для чего? Можете пояснить?
В с++ можно использовать за место 2 \\ такую конструкцию @ ?
0
afront
1047 / 993 / 751
Регистрация: 29.02.2016
Сообщений: 3,185
26.07.2017, 20:52 #4
https://msdn.microsoft.com/en-us/library/bb762181(v=vs.85).aspx
0
MisterR
67 / 66 / 52
Регистрация: 28.10.2015
Сообщений: 385
Завершенные тесты: 3
26.07.2017, 20:52 #5
Лучший ответ Сообщение было отмечено chaleureux как решение

Решение

Цитата Сообщение от chaleureux Посмотреть сообщение
А можно чуток по подробнее?
C++
1
2
3
4
5
BOOL CreateDirectory
(
LPCTSTR lpPathName, // имя каталога
LPSECURITY_ATTRIBUTES lpSecurityAttributes // атрибуты безопасности
);
1
Renji
2140 / 1499 / 456
Регистрация: 05.06.2014
Сообщений: 4,337
26.07.2017, 20:53 #6
Цитата Сообщение от chaleureux Посмотреть сообщение
1) Как создать файл\папку на с++?
Папку - std::experimental::filesystem::create_directory("Folder");, плюс #include<experimental/filesystem>. Ага, std::experimental в 2017 году - форменное безобразие.
Файл - std::ofstream("file.txt").
0
chaleureux
17 / 20 / 19
Регистрация: 24.12.2014
Сообщений: 973
26.07.2017, 21:01  [ТС] #7
Цитата Сообщение от Renji Посмотреть сообщение
std::experimental в 2017 году - форменное безобразие.
Всмысле?
0
Renji
2140 / 1499 / 456
Регистрация: 05.06.2014
Сообщений: 4,337
26.07.2017, 21:02 #8
Цитата Сообщение от chaleureux Посмотреть сообщение
Всмысле?
В смысле, по хорошему create_directory должны были вынуть из экспериментальной ветки и положить в основную еще в прошлом веке. Ан нет, только сейчас добавили, да и то в стадии обкатки.
0
chaleureux
17 / 20 / 19
Регистрация: 24.12.2014
Сообщений: 973
26.07.2017, 21:03  [ТС] #9
afront Так эта функция устаревшая? На сайте так написано, её используют на данный момент?
0
Renji
2140 / 1499 / 456
Регистрация: 05.06.2014
Сообщений: 4,337
26.07.2017, 21:10 #10
Цитата Сообщение от chaleureux Посмотреть сообщение
afront Так эта функция устаревшая? На сайте так написано, её используют на данный момент?
CreateDirectory - платформозависимая. И при переезде на Линукс превратится в тыкву.
0
DobroAlex
Модератор
367 / 312 / 159
Регистрация: 30.04.2016
Сообщений: 1,633
Завершенные тесты: 3
26.07.2017, 21:14 #11
chaleureux,
Так эта функция устаревшая
наоборот, слишком новая и не портабельная
0
chaleureux
17 / 20 / 19
Регистрация: 24.12.2014
Сообщений: 973
27.07.2017, 14:45  [ТС] #12
Нашёл очень хороший сайт: с++ Функции
Буду теперь по ним шпарить)

Добавлено через 15 часов 42 минуты
Подскажите нашёл путь к папке Temp
C++
1
2
T_CHAR myPath[ MAX_PATH ];
GetTempPath (MAX_PATH, myPath);
Как мне создать папку там с помощью:
C++
1
CreateDirectory ("Создать папку", NULL);
Как это делается в с++ ?
0
Renji
2140 / 1499 / 456
Регистрация: 05.06.2014
Сообщений: 4,337
27.07.2017, 14:56 #13
Цитата Сообщение от chaleureux Посмотреть сообщение
Как мне создать папку там с помощью:
C++
1
2
    auto temp=std::experimental::filesystem::temp_directory_path();
    std::experimental::filesystem::create_directory(temp.generic_string()+"/Создать папку");
Цитата Сообщение от chaleureux Посмотреть сообщение
Как это делается в с++ ?
CreateDirectory это Си, без плюс-плюс. Там надо strcat пинать чтоб соединить путь и имя папки.
0
GbaLog-
Любитель чаепитий
3156 / 1462 / 462
Регистрация: 24.08.2014
Сообщений: 5,180
Записей в блоге: 1
Завершенные тесты: 2
27.07.2017, 15:17 #14
Цитата Сообщение от chaleureux Посмотреть сообщение
1) Как создать файл\папку на с++?
Цитата Сообщение от MisterR Посмотреть сообщение
#include <windows.h>
это не с++.
Цитата Сообщение от Renji Посмотреть сообщение
CreateDirectory это Си,
это не с.
0
chaleureux
17 / 20 / 19
Регистрация: 24.12.2014
Сообщений: 973
27.07.2017, 16:16  [ТС] #15
Путаете все меня
Это не с++, то не си =)
Нужно хорошенько в этом разобраться чтобы не путаться.
Так CreateDirectory это с++ или си ?
Гугл пишет что с++ =)

Добавлено через 1 минуту
C++
1
2
3
    
auto temp=std::experimental::filesystem::temp_directory_path();
std::experimental::filesystem::create_directory(temp.generic_string()+"/Создать папку");
Можно по подробнее про этот способ? что за что отвечает? Если не сложно =)
0
Renji
2140 / 1499 / 456
Регистрация: 05.06.2014
Сообщений: 4,337
27.07.2017, 16:19 #16
Цитата Сообщение от chaleureux Посмотреть сообщение
Так CreateDirectory это с++ или си ?
Си-стайл, если уж буквоедствовать. Не является частью стандартных библиотек, работает на том низком уровне, на котором работает Си. В частности, фиг вам там, а не нормальные строковые классы и безразмерные строки.
Цитата Сообщение от chaleureux Посмотреть сообщение
Можно по подробнее про этот способ? что за что отвечает? Если не сложно =)
auto - тип "компилятор, ты же умный, сам подставь чего там надо".
temp_directory_path - как ни странно, читает temp directory path (путь к временной директории).
.generic_string() - перегоняет путь в строковой класс, для которого доступна конкатенация строк через +.
1
chaleureux
17 / 20 / 19
Регистрация: 24.12.2014
Сообщений: 973
27.07.2017, 16:22  [ТС] #17
Цитата Сообщение от Renji Посмотреть сообщение
auto - тип "компилятор, ты же умный, сам подставь чего там надо".
temp_directory_path - как ни странно, читает temp directory path (путь к временной директории).
.generic_string() - перегоняет путь в строковой класс, для которого доступна конкатенация строк через +.
Есть книга, или информация где можно почитать какие функции используются именно в с++ и т.п ?!
0
Renji
2140 / 1499 / 456
Регистрация: 05.06.2014
Сообщений: 4,337
27.07.2017, 16:31 #18
Цитата Сообщение от chaleureux Посмотреть сообщение
Есть книга, или информация где можно почитать какие функции используются именно в с++ и т.п ?!
Очень простые критерии, которые можно усвоить не вдаваясь в технические подробности:
Если с методами (объект.метод(аргументы) ), это плюсы.
Если с шаблонами (шаблон<что-то>), это плюсы.
Если инклуд начинается на "C" (<cassert>), это наследие Си.
Если инклуд кончается на ".h" и шел в комплекте с компилятором не старее 21 века, с вероятностью 99% внутри си-стайл код. Если компилятор совсем древний или код утащен с Гитхаба - возможны варианты.

UPD Ну и http://www.cplusplus.com/ как универсальный справочник.
1
Kastaneda
27.07.2017, 16:51
  #19

Не по теме:

Цитата Сообщение от chaleureux Посмотреть сообщение
Нашёл очень хороший сайт: с++ Функции
сколько открытий тебя еще ждет

0
chaleureux
27.07.2017, 17:01  [ТС]     Формальности для новичка
  #20

Не по теме:

Цитата Сообщение от Kastaneda Посмотреть сообщение
сколько открытий тебя еще ждет
Так это же хорошо =)

0
27.07.2017, 17:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.07.2017, 17:01
Привет! Вот еще темы с ответами:

Учебник для новичка по с++?
Извините возможно за очередную тему с этим вопросом... но я не как не могу...

Видеокурсы для новичка
Всем Привет, Подскажите пожалуйста актуальные видеокурсы(именно видуокурсы) по...

Литература для новичка
Добрый день уважаемые гиберчани. Кругом много литературы о вводе в...

STL для новичка!
Здравствуйте! подскажите пожалуйста мне, дураку(только начал изучать STL) ответ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru