1

Тема: Робота з windows за допомогою с++

Потрібно за допомогою с++ створити більше 10 папок на диску d:. С++ підтримує функцію system( "команда_ cmd"). А cmd  є функція створення папки. Отже я просто міг би за допомогою цикла повторити цю функцію декіль разів. Але є проблеми з синтаксисом.проблема у тому що папці тре дати імена. Мена влаштовують і таке ім'я яке значення має змінна циклу( 1;2;3;4;5). Але як це зробити? Чи можна розірвати якусь цю функцію, або може є інші схожі фунції?

2

Re: Робота з windows за допомогою с++

По-перше, CreateDirectory.
По-друге, вам треба щось про роботу з рядками в C/C++ почитати перед тим, як працювати з функціями ОС.

Подякували: Joker1

3

Re: Робота з windows за допомогою с++

Ну стандартні функції роботи з рядками я знаю. Дякую за підказку, спробую

4

Re: Робота з windows за допомогою с++

Joker написав:

Ну стандартні функції роботи з рядками я знаю.

1) sprintf
2) stringstream + string (std)
3) побавитися з кодами ASCII (враховуючи, що розрядів може бути довільна кількість, злежно від лічильника циклу).

5 Востаннє редагувалося Betterthanyou (19.07.2014 14:09:59)

Re: Робота з windows за допомогою с++

Цей алгоритм зробить десять папок в діску F

#include <iostream>
#include <conio.h>
#include <stdlib.h>
using namespace std;
int main()
{
    char char1[10] = { "md f:\\\\" };//замість f став який тобі потрібен
    char number[10],
    copychar[10];
    strcpy(copychar,char1);
    for (int i = 1; i <= 10; i++)
    {
        itoa(i, number, 10);//перетворює int в char
        strcat(copychar, number);
        cout << copychar << "\n";
        system(copychar);
        strcpy(copychar, char1);
    }
    getch();
    return 0;
}
Подякували: Joker1

6 Востаннє редагувалося koala (19.07.2014 14:47:58)

Re: Робота з windows за допомогою с++

#include <iostream>
#include <string>
#include <sstream>
#include <windows.h>

int main(int argc, char** argv)
{
  std::string path = "h:\\Temp\\";
  for(int i = 1; i <= 10; ++i )
  {
    std::stringstream transform;
    transform << i;
    std::string directory;
    transform >> directory;
    CreateDirectory( ( path + directory ).c_str(), NULL );
  }
}

Функція system - це виклик системної оболонки. Тобто для того, щоб виконати одну операцію, ви створюєте екземпляр іншої програми, яка має розібрати рядок, що ви його їй передаєте, і виконати цю операцію.
"Рідний" для C++ спосіб перетворювати числа на рядки - це використовувати stringstream.

Подякували: Joker1