Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на C / C++


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

_Ayl_
Статус: Студент
Рейтинг: 1411
∙ повысить рейтинг »
Boriss
Статус: Академик
Рейтинг: 1149
∙ повысить рейтинг »
Micren
Статус: Бакалавр
Рейтинг: 1033
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / C/C++

Номер выпуска:1423
Дата выхода:17.11.2009, 18:00
Администратор рассылки:Dr_Andrew, Старший модератор
Подписчиков / экспертов:674 / 179
Вопросов / ответов:1 / 2
IRC-канал по теме:#C

Вопрос № 174139: Помогите пожалуйста написать прогу.Вывести на экран имя выполняющейся программы (без указания полного пути)....



Вопрос № 174139:

Помогите пожалуйста написать прогу.Вывести на экран имя выполняющейся программы (без указания полного пути).

Отправлен: 11.11.2009, 19:16
Вопрос задал: vplusv, Посетитель
Всего ответов: 2
Страница вопроса »


Отвечает Micren, Бакалавр :
Здравствуйте, vplusv.
Программа. MS VC++.
Один из способов
Код:
#include <iostream>
#include <string>
#include <cstdlib>

using namespace std;

string getFileName(const char* const path)
{
char name[_MAX_FNAME];
char ext[_MAX_EXT];
#pragma warning(disable:4996)
_splitpath(path,0,0,name,ext);
return string(name)+string(ext);
}

int main(int argc,char** argv)
{
cout<<getFileName(argv[0])<<endl;

system("PAUSE");
return 0;
}


То же самое на C:
Код:
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

size_t getFileName(const char* const path,char* fileName)
{
char name[_MAX_FNAME]={0};
char ext[_MAX_EXT]={0};
size_t len;
#pragma warning(disable:4996)
_splitpath(path,0,0,name,ext);
len=strlen(name)+strlen(ext);
if(fileName)
{
strcpy(fileName,name);
strcat(fileName,ext);
}
return len;
}

int main(int argc,char** argv)
{
size_t len=getFileName(argv[0],0);
char* name=(char*)malloc(len+1);
getFileName(argv[0],name);
printf("%s\n",name);
free(name);

system("PAUSE");
return 0;
}

Ответ отправил: Micren, Бакалавр
Ответ отправлен: 11.11.2009, 20:17

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 256393 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает vladisslav, 5-й класс :
    Здравствуйте, vplusv.
    Относительно универсальный вариант (C99)

    Приложение:

    Ответ отправил: vladisslav, 5-й класс
    Ответ отправлен: 12.11.2009, 10:24

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 256404 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.11 от 17.11.2009

    В избранное