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


Автор: papam 19.5.2006, 19:23
Что сделать чтоб параметры передавались с командной строки??? Подскажите пожалуста
Код

void main(int argc, char* argv[])
{
    int  src, dst, size;
    char buf[BUF_SIZE];  
    char *dstFile = (char*) malloc(MAXPATH); 
    char *sourceFile = (char*) malloc(MAXPATH);

    
    {
        int i =0;
        printf ("\n");
       // printf ("You have decided to copy a file.\nPrint the full path to file which you want to copy.\nExample: C:\134boot.ini\n");
        scanf("%s", sourceFile); 
        //printf ("\n");
        if((src = _open(sourceFile, _O_BINARY | _O_RDONLY))==-1)           {
                perror("Copy error");
                exit(1); 
            }
        printf ("Now print the path to the place where you want to copy your file and its name.\nExample: D:\134boot.txt\n");
       
        scanf("%s", dstFile);
        printf ("\n");
        int a = 1;
        int err3 = 0;
        if((dst = _open(dstFile, _O_BINARY | _O_CREAT | _O_RDWR ))==-1) 
        {
            perror("Create file error");
            exit(1);
        }
        while(!_eof(src)) 
        {
            i++;
            if( ( size = _read( src, buf, BUF_SIZE ) ) == -1 ) 
            {
                perror("Read error");
                break;            
            }
            else 
            {
                printf ("block " "%d",i);
                printf(" read successful\n");
            }
            if( err3 = _write( dst, buf, size ) == -1 ) 
            {
                perror("Write error");
                break;
            }            
            else 
            {
                printf ("block " "%d",i);
                printf (" write successful\n");
            }            
        }
        if (err3 != 1)
            printf ("File copy OK!\n");
        _close(dst);

        if (err3 != 0)
            {
                int err = 0;
                if((err = remove(dstFile))==-1)
                {
                    perror("Delete file error");
                }
                else printf ("File was deleted!\n");                
            }
        _close(src);
    }
}

 

Автор: nikitao 19.5.2006, 19:43
papam, не понял... smile 
Они тебе уже передались.
В argc их кол-во , а массиве строк argv они сами. smile  

Автор: Helicopterr 19.5.2006, 19:45
вводить нужно с двойным слэшем:
C:\\134boot.ini smile

 

Автор: papam 19.5.2006, 19:54
Когда я путь ввел вылазит консоль 

Автор: MAKCim 19.5.2006, 21:15
Цитата

Когда я путь ввел вылазит консоль  

Код

# <имя программы> <source файл> <dest файл>


Добавлено @ 21:16 
соответственно
source файл в argv[1]
dest файл в argv[2] 

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