с++ имя файла

Модератор: Модераторы разделов

troll80
Сообщения: 14
ОС: sidux

с++ имя файла

Сообщение troll80 »

Здравствуйте..проблема такая, программа на С++, пользователь вводит с консоли имя файла который нужно обработать, допустим name.res, нужно отбросить расширение и добавть свои символы и расширение в имени т е так name01.txt, name02.txt......и закинуть это в отдельный каталог..( тоже создается). сам пытался, ни чего хорошего не вышло, через функции работы со строками strcpy и прочее..буду рад увидеть ваши советы.спасиб.в дальнейшем программку хочется сделать кроссплатформенной.
Спасибо сказали:
Nymin
Сообщения: 1095
Статус: -
ОС: GNU/Linux

Re: с++ имя файла

Сообщение Nymin »

в дальнейшем программку хочется сделать кроссплатформенной.
скрипт не устроит?
Спасибо сказали:
troll80
Сообщения: 14
ОС: sidux

Re: с++ имя файла

Сообщение troll80 »

нет.
Спасибо сказали:
Аватара пользователя
Denjs
Сообщения: 1685
ОС: SuSe 10.2

Re: с++ имя файла

Сообщение Denjs »

(Правила_раздела) писал(а):Темы от студентов с запросами готовых решений по заданиям зарываются не глядя.

_________________________________________________
я так понимаю курсовая? "скогаденек"(a)?
_________________________________________________
может быть вы код приведете который у вас "не получается"? )))
QDroid - Среда исполнения и фреймворк для QtScript.
OTPD - Открытые драйвера промышленных принтеров чеков и этикеток (кроссплатформенная подсистема печати).
Спасибо сказали:
Аватара пользователя
RasenHerz
Сообщения: 1341
ОС: Arch Linux amd64

Re: с++ имя файла

Сообщение RasenHerz »

на Qt без лишней головной боли можно все сделать + куча документации + кросплатформенность "из коробки"
Спасибо сказали:
troll80
Сообщения: 14
ОС: sidux

Re: с++ имя файла

Сообщение troll80 »

нет это- не курсовая..на уровне хобби в помощь родной лаборатории . программа простая как валенок сама.. берет файл-изображение считывает и записывает в виде двухмерной матрицы в текством формате, соотвественно 3 цвета--3 выходных файла..так все работает, только у меня или фиксированные имена выходных файлов или надо вбивать руками имена 3-х файлов. что не удобно не то и не другое. интересует имеено момент , чтобы выдал имеено так...возможно придется обрабатывать сразу кучу файлов.
.почему кроссплатформенность и консольность -тут все просто....профессор лаборатории мужик консервативный - у него стоит древний комп с W98..
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: с++ имя файла

Сообщение Portnov »

iУведомление от модератора

Ждём от топикстартера попыток решения (пусть неработающих, но чтобы было видно что человек сам пытается решить свою проблему, а не переложить её на форум).
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
troll80
Сообщения: 14
ОС: sidux

Re: с++ имя файла

Сообщение troll80 »

Код: Выделить всё

[/code]
#include "libraw/libraw.h"
#include <iostream>
#include <fstream>
using namespace std;

int main( int arc, char *argv[])
{
  int i,j;
  int ret;
  LibRaw iProcessor;
   if( (ret =  iProcessor.open_file (argv[1])) != LIBRAW_SUCCESS )
       // open file!
     {
       cout<<  stderr;
       cout<< "\n";
       cout<< "Cannot open file \t";
       cout<< libraw_strerror(ret);
       cout<< "\n";
       return 1;
 }
    if ((ret = iProcessor.unpack()) != LIBRAW_SUCCESS)
    {
     cout<< "Cannot unpack";
       return 1;
   }
   ofstream fout_R ("out_R.txt");
   ofstream fout_G ("out_G.txt");
   ofstream fout_B ("out_B.txt");
    cout<<"unpack file.....\n";

   if(!fout_R)
    {
        cout<<"ERROR FILE OUT";
        return 1;
}
  cout << "Image size \n";
  cout<< " \n WIDTH \n";
  cout << iProcessor.imgdata.sizes.width;
  cout<< " \n HEIGHT \n";
  cout<< iProcessor.imgdata.sizes.height;
  cout<<"save file....\n";

  for ( i=0; i < iProcessor.imgdata.sizes.iwidth; i++ )
    {
         for ( j=0; j < iProcessor.imgdata.sizes.iheight; j++ )
      {
            fout_R << iProcessor.imgdata.image[i][0];
         fout_G << iProcessor.imgdata.image[i][1];
         fout_B  << iProcessor.imgdata.image[i][2];
     }
          fout_R    << "\n";
            fout_G    << "\n";
         fout_B    << "\n";
   }

   fout_R.close();
   fout_G.close();
   fout_B.close();

   iProcessor.recycle();
  cout<<"FINISH \n";
  return 0;
}
[code]

это работающий код с фиксированными выходными именами файлов.
Спасибо сказали:
Аватара пользователя
Crazy
Сообщения: 862
Статус: Адепт Дзен.
ОС: Mint, Win7.

Re: с++ имя файла

Сообщение Crazy »

Код: Выделить всё

#include <cstring>
#include <iostream>

char old_format[]=".txt";
char new_format[]=".MHC";
int main(int argc, char** argv)
{
    char str[1024];
    strcpy(str,argv[1]);
    char* find=strstr(str, old_format);
    if(find)
    {
        *find=0; //обрезание сроки
        strcat(str,"00");
        strcat(str,new_format);

    }
    std::cout<<str<<std::endl;
    return 0;
}

Desipere in loco
Спасибо сказали:
troll80
Сообщения: 14
ОС: sidux

Re: с++ имя файла

Сообщение troll80 »

Сrazy
спасибо огромное!!!!! разобрался..сейчас попробую
Спасибо сказали: