Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > омандная строка


Автор: papam 18.5.2006, 19:36
Скажите почему когда я в командной строке ввожу delete.exe E:\1.txt ,файл не удаляется,а вылазить консоль ?А надо чтоб все с командной строки работало.Огромное спасибо!!!Вот программа:
Код

#include <stdio.h>
#include <fcntl.h>
#include <io.h>
#include <windows.h>
#include <conio.h>
#include <ctype.h>
#include<iostream.h>
#define MAXPATH 250 
void main(int argc, char* argv[])
{
     
        argv[2] = (char*) malloc(MAXPATH);
        cout<<"You decided to delete a file.\nPrint the full path to file which you want to delete.\nExample: C:\134boot.ini\n"
        cin>>argv[2];//scanf ("%s", argv[2]);
      
        int err = 0;
        if((err = remove(argv[2]))==-1)
        {
            cout<<"Delete file error";
        }
        else 
            cout<<"File was successfully deleted\n";
        
 

Автор: Fazil6 18.5.2006, 19:40
а почему argv[2] ? вроде должно быть argv[1] 

Автор: BreakPointMAN 18.5.2006, 19:44
Потому что у тебя есть оператор ввода:
Код
cin>>argv[2]

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

Автор: Earnest 18.5.2006, 19:54
Параметр "E:\1.txt" уже находится в argv[1]. 
И вообще, это некорректное использование argv - кто тебе сказал, что там есть 2й элемент?
Насколько я понимаю твою задумку, должно быть так:
Код

void main(int argc, char* argv[])
{
     if (argc > 1)
     {
          remove (argv[1]);
          ...
     }
     else
     {
         // вот если аргументов нет, то и запрашивай их, только заведи бога ради свою переменную!
        char* pToDelete = (char*) malloc(MAXPATH);
        cout<<"You decided to delete a file.\nPrint the full path to file which you want to delete.\nExample:  \134boot.ini\n"
        cin>>pToDelete;
       ...
    }
}        

  

Автор: papam 18.5.2006, 20:09
Спасибо Вам!!! 

Автор: papam 18.5.2006, 21:09
А почему не удаляются папки?
Файлы удаляются 

Автор: Earnest 19.5.2006, 08:13
Видимо, remove удаляет только файлы. С папками нужно работать отдельно. Но это уже в другом топике, пожалуйста. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)