Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с каталогами (С, Linux) 
:(
    Опции темы
neomax38
Дата 5.3.2012, 05:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 15.12.2010

Репутация: нет
Всего: нет



Здравствуйте.
 Задание: 
 Переместить файлы с именем на заданную букву из заданного каталога в текущий.
 На СИ не писал вообще ничего даже Hello world smile 
Писал не я :
Код

#include <stdio.h>
#include <dirent.h>

int main(int argc, char* argv[])
{
   if (argc != 3)
   {
      fprintf(stdout, "Usage: %s PATH CHAR", *argv);
      return 0;
   }

   char* path = argv[1];
   char ch = *argv[2];
   
   DIR* dir = opendir(path);
   
   if (dir)
   {
      struct dirent* ent;
      
      while ((ent = readdir(dir)) != NULL)
      {
         if (*ent->d_name == ch)
         {
            char file[NAME_MAX];
           sprintf(file, "%s/%s\0", path, ent->d_name);
            
            if (rename(file, ent->d_name) != 0)
            {
               fprintf(stderr, "Error: can not move the file '%s'\n", ent->d_name);
            }
         }
      }
   }
   else
   {
      fprintf(stderr, "Error: dir '%s' not found", path);
   }

   return 0;
}

Иначально компилировался, но не работал вообще, добавил атрибут к sprintf \0, стал выдавть ошибку..

Это сообщение отредактировал(а) neomax38 - 5.3.2012, 05:42
PM MAIL   Вверх
bsa
Дата 5.3.2012, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(neomax38 @  5.3.2012,  06:32 Найти цитируемый пост)
добавил атрибут к sprintf \0
ну и зачем? Тем более, что когда у тебя текст в кавычках, то символ '\0' автоматически добавляется.
Цитата(neomax38 @  5.3.2012,  06:32 Найти цитируемый пост)
стал выдавть ошибку..
возможно ты еще что-то сломал. Какую ошибку выдает?

Код выглядит корректным. Но я бы добавил closedir(dir); между 33 и 34 строкой.
В строку 37 перед закрывающей кавычкой добавь символ переноса строки: \n

PM   Вверх
neomax38
Дата 5.3.2012, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 15.12.2010

Репутация: нет
Всего: нет



 
Цитата

 Какую ошибку выдает?
Что то со знаками или атрибутами " : ; , . atribbute  и т.д "


PM MAIL   Вверх
marsh123
Дата 5.3.2012, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 22.6.2008

Репутация: нет
Всего: нет



Не совсем понял, в чем вопрос, приведенный код в 1 сообщении компилируется и выполняет поставленную задачу:
user posted image
PM MAIL   Вверх
neomax38
Дата 5.3.2012, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 15.12.2010

Репутация: нет
Всего: нет



Цитата

Не совсем понял, в чем вопрос, приведенный код в 1 сообщении компилируется и выполняет поставленную задачу:


На паре пробовал не компилировалось) Сейчас на виртуалке попробую=)
PM MAIL   Вверх
feodorv
Дата 5.3.2012, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(neomax38 @  5.3.2012,  14:08 Найти цитируемый пост)
На паре пробовал не компилировалось)

Какие выдаёт ошибки компиляции?


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
neomax38
Дата 5.3.2012, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 15.12.2010

Репутация: нет
Всего: нет



Дома все норм работает) Спасибо за помощь) не шарю в unix системах неправильно запускал)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0451 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.