использования ДОС команд в С++

Тема в разделе "Общие вопросы по С и С++", создана пользователем AlexSaaa, 14 сен 2005.

Статус темы:
Закрыта.
  1. AlexSaaa

    AlexSaaa Гость

    Добрый день,
    Интересуют возможность использования ДОС команд в С++
     
  2. zzzup

    zzzup Гость

    никаких проблем и препятствий для этого нету
     
  3. AlexSaaa

    AlexSaaa Гость

    почемуто я так и думал..а можно уточнить синтаксис
     
  4. zzzup

    zzzup Гость

    я тебе счас весь C должен накатать что-ли ????? :)

    кокретней плиз что не получается у тебя использовать и покажи код как ты это используешь!
     
  5. AlexSaaa

    AlexSaaa Гость

    Нет .. весь С кататать не нада..я еще так далеко не зашел...
    пока в учебных целях пытаюсь написать что-то наподобии HR book.. с помощью struct ..возникли некоторые проблемы:
    - не получаеться преобразовать struct-елемент в char...
    - и нужно после опредленого цыкла програмы очистить экран CLS в DOS кода показать не могу..так как пока просто ищу возможности сделать это
     
  6. AlexSaaa

    AlexSaaa Гость

    пока написал до сих

    /*Напишите информационную систему "Сотрудники".
    Организуйте ввод данных,
    поиск сотрудника по фамилии,
    вывод информации о всех сотрудниках,
    указанного возраста. */

    #include <iostream>
    #include <cstring>

    using namespace std;
    int Size=0;

    struct Employee{
    char name[32];
    char surname[32];
    char phone[15];
    char birthday[10];
    };

    void Add(Employee &s){
    cout << "name: ";
    cin >> s.name;
    cout << "surname: ";
    cin >> s.surname;
    cout << "phone: ";
    cin >> s.phone;
    cout << "birthday: ";
    cin >> s.birthday;
    cout<<"New item was added to database"<<endl;
    cout << "========================================"<<endl;
    ОЧИСТИТЬ ЭКРАН....скорее для удобства
    }



    void print(Employee &s) {
    cout << "========================================"<<endl;
    cout << "name: " << s.name << endl;
    cout << "surname: " << s.surname << endl;
    cout << "phone: "<<s.phone<<endl;
    cout << "birthday: "<<s.birthday<<endl;

    }

    int main(){

    Employee *arr = new Employee[100];

    cout<<"HR book v. 1\n";
    char choice;

    do{

    cin>>choice;
    switch(choice){
    case 'A': case 'a':
    ++Size;
    Add(arr[Size]);
    break;
    case'S':case's':
    char* A;
    cout<<"Search for: ";
    cin>>A;
    cout<<"Search results: "<<endl;
    for(int i=0; i<Size; ++i){

    if(strncmp( :) ????????????, A, strlen (A))==0 )
    print(arr);
    }

    break;

    }
    }while(choice!='Q'&&choice!='q');



    return 0;
    }
     
  7. Guest

    Guest Гость

    Про мелкие недочёты говорить не буду. Скажу о крупных ошибках.

    Как ты думаешь, что будет после этого фрагмента:
    Код (Text):
    case'S':case's':
    char* A;
    cout<<"Search for: ";
    cin>>A;
    Ничего хорошего. Напиши так:
    Код (Text):
    case'S':case's':
    char A[100];
    cout<<"Search for: ";
    cin>>A;
    Сравнение:
    Код (Text):
    if(strncmp( arr[i].name, A, strlen (A))==0 )
    А об очистке ничего не скажу. Предполагается, что cin и cout могут быть перенаправлены в файл. Поэтому очистка в принципе невозможна.

    Хотя в Borland C существовала функция clrscr(), очищавшая экран. У меня Visual стоит, там её нет.
     
  8. Guest

    Guest Гость

    Про мелкие недочёты говорить не буду. Скажу о крупных ошибках.

    Как ты думаешь, что будет после этого фрагмента:
    Код (Text):
    case'S':case's':
    char* A;
    cout<<"Search for: ";
    cin>>A;
    Ничего хорошего. Напиши так:
    Код (Text):
    case'S':case's':
    char A[100];
    cout<<"Search for: ";
    cin>>A;
    Сравнение:
    Код (Text):
    if(strncmp( arr[i].name, A, strlen (A))==0 )
    А об очистке ничего не скажу. Предполагается, что cin и cout могут быть перенаправлены в файл. Поэтому очистка в принципе невозможна.

    Хотя в Borland C существовала функция clrscr(), очищавшая экран. У меня Visual стоит, там её нет.
     
  9. AlexSaaa

    AlexSaaa Гость

    спасибо гест,
    разобрался..

    относительно очистки..имел ввиду прсто очистку экрана.. видел где-то .. но к сожалению не запомнил код..там что-то типа >>command('CLS').. но не работает..плохо когда память девичья
     
  10. Guest

    Guest Гость

    В стандартах C и C++ нет функций очистки экрана. Но создатели компиляторов добавляют такие функции в свои библиотеки. Так, у Borland существует функция clrscr() (conio.h), выполняющая очистку экрана. Возможно похожая функция есть и у Microsoft. но это будет уже не чистый C++.

    > относительно очистки..имел ввиду прсто очистку экрана.. видел где-то .. но к сожалению не запомнил код..там что-то

    Представь, что ты смог сделать очистку экрана. Затем ты разместил свою прогу на каком-нибудь сайте. Мне она понравилась и я её скачал. Через некоторое время я решил автоматизировать процесс. Я создал файл INPUT.TXT с следующим текстом:
    Код (Text):
    a
    Andre
    Andre
    111
    111

    a
    Alex
    Alex
    222
    222

    ...
    Теперь чтобы создать базу данных я запускаю программу так:
    Код (Text):
    programm.exe < input.txt
    В результате, данные будут поступать в cin не с клавиатуры а из файлика.
    Затем я пошёл ещё дальше. Всю выводимую информацию я решил сохранить в файле OUTPUT.TXT. Я сделал так:
    Код (Text):
    programm.exe < input.txt > output.txt
    Внимание вопрос. Что будет очищаться? Ведь весь вывод будет направлен в файл output.txt, а не на экран.

    Мой совет. Забудь про очистку экрана. Когда я писал похожие программки мне хватало нескольких пустых строк для разделения информации.
     
  11. ????

    ???? Гость

    Для: Guest
    Молодец. +
     
  12. AlexSaaa

    AlexSaaa Гость

    спасибо...с этим разобрались...


    еще один вопрос по даной програм...
    могу ли я в строчке if(strncmp( arr.name, A, strlen (A))==0 ) сделать
    strncmp( arr.name динамичной... то есть возможность поиска не тлько в нейм а в синейм или фоун.. в зависимости от того что введет юзер... без дополнительних иф-строчок..
    перечетил что написал..возможно не суразен о все же
     
  13. Guest

    Guest Гость

    Посмотри как у тебя реализована структура:
    Код (Text):
    struct Employee{
    char name[32];
    char surname[32];
    char phone[15];
    char birthday[10];
    };
    Т.к. все поля у тебя строки, то то ты можешь спокойно использовать функцию strncmp для сравнения чего угодно. Другое дело, что желательно проверять то, что вводит пользователь, т.е. дату и телефон, а то он такое введёт :D .

    Вместо функции strncmp ты можешь использовать функцию strnicmp. Параметры у неё такие же, но она производит сравнение без учёта регистра, т.е. 10-jan-2005 и 10-Jan-2005 одинаковые строки.
     
  14. alam

    alam Гость

    Очищать можно командой system("CLS");
    При перенаправлении в файл очищаться будет экран.
     
  15. AlexSaaa

    AlexSaaa Гость

    опять проблемка возникла...не получаеться передать в функцию элемент Юнион.

     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей