Форум программистов, компьютерный форум CyberForum.ru

Как назвать файл переменной n? - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Ludwig
 Аватар для Ludwig
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 20
22.02.2013, 15:09     Как назвать файл переменной n? #1
Господа, помогите новичку, я пишу программу и я хочу, чтобы она создавала файл, названной по имени переменной n, которую я ввожу чуть-чуть раньше. Т.е. если я в качестве переменной пишу Hello world, то у меня файл, куда далее будут записаны некие данные назывался "Hello world"
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2013, 15:09     Как назвать файл переменной n?
Посмотрите здесь:

Проблема.(Не знаю даже как ее назвать...) C++
C++ Как назвать эту строку?
C++ Не знаю как назвать
Как назвать классы? C++
Как назвать переменную зная её String C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NIch
 Аватар для NIch
399 / 310 / 27
Регистрация: 17.03.2010
Сообщений: 1,120
22.02.2013, 15:41     Как назвать файл переменной n? #2
Хм...
Программа ничего не знает про названия переменных, после компиляции остаются только адреса в памяти.
Есть такая технология RTTI, но она должна поддерживаться компилятором.
http://ru.wikipedia.org/wiki/%D0%94%...BD%D1%8B%D1%85
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
22.02.2013, 15:50     Как назвать файл переменной n? #3
Если имеется в виду текстовый файл и нужно его создать, присвоив название из какой-то переменной, то так:
C++
1
2
3
char n[10];
std::cin>>n;
std::ofstream file(n);
NIch
 Аватар для NIch
399 / 310 / 27
Регистрация: 17.03.2010
Сообщений: 1,120
22.02.2013, 15:58     Как назвать файл переменной n? #4
Так, то да...но менять код нужно в 2-х местах.
1. Название переменной.
2. Выводимая строка.

А вот как сделать чтобы функция вывод не знала названия переменной в виде строки, в получала его runtime?
Например
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void print(string a){
  cout << a;
}
 
int main{
  int qwe;
  print(что то); // как то передать имя переменной
 
  int asd;
  print(что то);
 
  int zxc;
  print(что то);
}
Что бы результатом программы было:
qwe
asd
zxc

Т.е. выводить не значение переменной, а ее название.
Xipxop
 Аватар для Xipxop
481 / 9 / 2
Регистрация: 28.12.2011
Сообщений: 150
22.02.2013, 16:09     Как назвать файл переменной n? #5
Возможно я и ошибусь, но ведь компилятор все затирает, затирает названия переменных в "кашу-малашу" читабельную только для компа...
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
22.02.2013, 16:14     Как назвать файл переменной n? #6
NIch, судя по
Цитата Сообщение от Ludwig Посмотреть сообщение
Т.е. если я в качестве переменной пишу Hello world, то у меня файл, куда далее будут записаны некие данные назывался "Hello world"
автору это и не надо.

В runtime вообще разве существуют "имена переменных" в том виде, которые были в исходном коде?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
 
#define name(var) #var
 
void print(std::string a)
{
    std::cout << a << "\n";
}
 
int main()
{
    int qwe;
    print(name(qwe));
 
    int asd;
    print(name(asd));
 
    int zxc;
    print(name(zxc));
 
    return 0;
}
NIch
 Аватар для NIch
399 / 310 / 27
Регистрация: 17.03.2010
Сообщений: 1,120
22.02.2013, 16:38     Как назвать файл переменной n? #7
См. RTTI.
Технология позволяет хранить всю инфу об объекте от списка и типа свойств, до их имен.
По крайней мере Delphi XE2 (и скорее всего C++ Builder XE2) эти фишки поддерживает.
Т.е. можно пройти по списку свойств и методов, а так же вызывать эти методы по имени строкой.
C++
1
2
3
4
5
6
7
8
9
// Описанная функция в классе
class SomeClass{
 
  public:
    void Make_me_good();
 
}
// Вызов функции по имени
Action("Make_me_good");
Конечно, реализация далеко не такая простая, там достаточно много подготовительных функции и пр.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.02.2013, 17:30     Как назвать файл переменной n? #8
Цитата Сообщение от Ludwig Посмотреть сообщение
Господа, помогите новичку, я пишу программу и я хочу, чтобы она создавала файл, названной по имени переменной n, которую я ввожу чуть-чуть раньше. Т.е. если я в качестве переменной пишу Hello world, то у меня файл, куда далее будут записаны некие данные назывался "Hello world"
Файл по имени переменной или по введённому значению строковой переменной? Не может быть переменной с именем Hello world. Пробелы в имени переменной не допускаются. Если по значению, то 3 пост.
Ludwig
 Аватар для Ludwig
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 20
22.02.2013, 17:56  [ТС]     Как назвать файл переменной n? #9
alsav22, Я говорил к примеру. Мне просто нужно, чтобы имя создаваемого файла было таким, какой является переменная (если n=5, то файл называется 5.txt, если n=abrakadabra, то файл, соответственно, abrakadabra.txt)
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.02.2013, 18:00     Как назвать файл переменной n? #10
Только если имя файла из нескольких слов, то:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
int main()
{
 string str;
 getline(cin, str);
 ofstream file(str);
 
 system("pause");
 return 0;
}
И сделать проверку, чтобы в имени файла не было недопустимых символов (/\:*?<>)

Цитата Сообщение от Ludwig Посмотреть сообщение
alsav22, Я говорил к примеру. Мне просто нужно, чтобы имя создаваемого файла было таким, какой является переменная (если n=5, то файл называется 5.txt, если n=abrakadabra, то файл, соответственно, abrakadabra.txt)

Добавлено через 3 минуты
Извините за назидательный тон, но чтобы получить правильный ответ, нужно задать правильный вопрос. В первом посте:
Цитата Сообщение от Ludwig Посмотреть сообщение
файл, названной по имени переменной
Многие так поняли. Поэтому я и уточнил. Имя переменной - это одно, а значение переменной - это другое. Если по значению, то ответы есть, только переменная должна быть строковой. Если не строковая, то, переводить в строковую.
Ludwig
 Аватар для Ludwig
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 20
22.02.2013, 18:03  [ТС]     Как назвать файл переменной n? #11
Прошу прощения=)
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.02.2013, 18:06     Как назвать файл переменной n? #12
Цитата Сообщение от Ludwig Посмотреть сообщение
Прошу прощения=)
Вообщем-то, не за что. Я последний пост дописал, по поводу, если переменная не строковая.
Ludwig
 Аватар для Ludwig
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 20
22.02.2013, 18:20  [ТС]     Как назвать файл переменной n? #13
BumerangSP, а как задать формат файла?
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
22.02.2013, 18:31     Как назвать файл переменной n? #14
Ludwig, в смысле, расширение (txt,...) ? Или тип (текстовый, бинарный)?
Ludwig
 Аватар для Ludwig
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 20
22.02.2013, 18:37  [ТС]     Как назвать файл переменной n? #15
BumerangSP, ну, конкретно сейчас, нужен txt, но я был бы очень благодарен, если бы знал побольше на эту тему)
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.02.2013, 18:37     Как назвать файл переменной n? #16
Расширение указывается в имени. Режим открытия при создании потока или открытии(по умолчанию открывается как текстовый).
Ludwig
 Аватар для Ludwig
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 20
22.02.2013, 18:41  [ТС]     Как назвать файл переменной n? #17
alsav22, конкретно с помощью этого:
Цитата Сообщение от BumerangSP Посмотреть сообщение
Код C++
1
2
3
char n[10];
std::cin>>n;
std::ofstream file(n);
у меня создается файл, но мой компьютер не знает как его открывать
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.02.2013, 18:44     Как назвать файл переменной n? #18
Покажите весь код и что вводите, как имя файла.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
22.02.2013, 18:46     Как назвать файл переменной n? #19
Ludwig, да прям так:
C++
1
2
char n[] = "Hello.txt";
std::ofstream f(n);
По поводу режимов и прочего можно почитать про тут
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2013, 18:46     Как назвать файл переменной n?
Еще ссылки по теме:

C++ Как назвать элемент масива структур
C++ Как назвать транслятор языка PL/0
Как назвать переменную именем, введенным пользователем? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.02.2013, 18:46     Как назвать файл переменной n? #20
Вот это код попробуйте:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
int main()
{
 string str;
 getline(cin, str);
 ofstream file(str);
 
 system("pause");
 return 0;
}
Yandex
Объявления
22.02.2013, 18:46     Как назвать файл переменной n?
Ответ Создать тему
Опции темы

Текущее время: 16:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru