0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 20
1

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

22.02.2013, 15:09. Показов 6645. Ответов 31
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Господа, помогите новичку, я пишу программу и я хочу, чтобы она создавала файл, названной по имени переменной n, которую я ввожу чуть-чуть раньше. Т.е. если я в качестве переменной пишу Hello world, то у меня файл, куда далее будут записаны некие данные назывался "Hello world"
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.02.2013, 15:09
Ответы с готовыми решениями:

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

как правильно назвать файл?
Приветствую всех.. пишу программу, которая использует файлы типа dat как сделать, чтобы при...

Как отфильтровать текст чтобы с его момощью можно было назвать файл?
Вообщем есть переменная ,в ней есть текст в котором могут быть любые символы.Нужно отфильтровать...

Нужно назвать массив с использованием переменной
Помогите нужно назвать массив с использованием переменной: ПЕРЕМЕННАЯ = 12 dim arrayПЕРЕМЕННАЯ()...

31
401 / 312 / 74
Регистрация: 17.03.2010
Сообщений: 1,119
22.02.2013, 15:41 2
Хм...
Программа ничего не знает про названия переменных, после компиляции остаются только адреса в памяти.
Есть такая технология RTTI, но она должна поддерживаться компилятором.
http://ru.wikipedia.org/wiki/%... 1%8B%D1%85
0
4311 / 1422 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
22.02.2013, 15:50 3
Если имеется в виду текстовый файл и нужно его создать, присвоив название из какой-то переменной, то так:
C++
1
2
3
char n[10];
std::cin>>n;
std::ofstream file(n);
1
401 / 312 / 74
Регистрация: 17.03.2010
Сообщений: 1,119
22.02.2013, 15:58 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

Т.е. выводить не значение переменной, а ее название.
0
481 / 9 / 6
Регистрация: 28.12.2011
Сообщений: 151
22.02.2013, 16:09 5
Возможно я и ошибусь, но ведь компилятор все затирает, затирает названия переменных в "кашу-малашу" читабельную только для компа...
0
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
22.02.2013, 16:14 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;
}
0
401 / 312 / 74
Регистрация: 17.03.2010
Сообщений: 1,119
22.02.2013, 16:38 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");
Конечно, реализация далеко не такая простая, там достаточно много подготовительных функции и пр.
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
22.02.2013, 17:30 8
Цитата Сообщение от Ludwig Посмотреть сообщение
Господа, помогите новичку, я пишу программу и я хочу, чтобы она создавала файл, названной по имени переменной n, которую я ввожу чуть-чуть раньше. Т.е. если я в качестве переменной пишу Hello world, то у меня файл, куда далее будут записаны некие данные назывался "Hello world"
Файл по имени переменной или по введённому значению строковой переменной? Не может быть переменной с именем Hello world. Пробелы в имени переменной не допускаются. Если по значению, то 3 пост.
1
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 20
22.02.2013, 17:56  [ТС] 9
alsav22, Я говорил к примеру. Мне просто нужно, чтобы имя создаваемого файла было таким, какой является переменная (если n=5, то файл называется 5.txt, если n=abrakadabra, то файл, соответственно, abrakadabra.txt)
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
22.02.2013, 18:00 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 Посмотреть сообщение
файл, названной по имени переменной
Многие так поняли. Поэтому я и уточнил. Имя переменной - это одно, а значение переменной - это другое. Если по значению, то ответы есть, только переменная должна быть строковой. Если не строковая, то, переводить в строковую.
0
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 20
22.02.2013, 18:03  [ТС] 11
Прошу прощения=)
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
22.02.2013, 18:06 12
Цитата Сообщение от Ludwig Посмотреть сообщение
Прошу прощения=)
Вообщем-то, не за что. Я последний пост дописал, по поводу, если переменная не строковая.
0
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 20
22.02.2013, 18:20  [ТС] 13
BumerangSP, а как задать формат файла?
0
4311 / 1422 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
22.02.2013, 18:31 14
Ludwig, в смысле, расширение (txt,...) ? Или тип (текстовый, бинарный)?
0
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 20
22.02.2013, 18:37  [ТС] 15
BumerangSP, ну, конкретно сейчас, нужен txt, но я был бы очень благодарен, если бы знал побольше на эту тему)
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
22.02.2013, 18:37 16
Расширение указывается в имени. Режим открытия при создании потока или открытии(по умолчанию открывается как текстовый).
0
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 20
22.02.2013, 18:41  [ТС] 17
alsav22, конкретно с помощью этого:
Цитата Сообщение от BumerangSP Посмотреть сообщение
Код C++
1
2
3
char n[10];
std::cin>>n;
std::ofstream file(n);
у меня создается файл, но мой компьютер не знает как его открывать
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
22.02.2013, 18:44 18
Покажите весь код и что вводите, как имя файла.
0
4311 / 1422 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
22.02.2013, 18:46 19
Ludwig, да прям так:
C++
1
2
char n[] = "Hello.txt";
std::ofstream f(n);
По поводу режимов и прочего можно почитать про тут
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
22.02.2013, 18:46 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;
}
0
22.02.2013, 18:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.02.2013, 18:46
Помогаю со студенческими работами здесь

Как присвоить переменной файл если, допустим, путь к файлу находится в переменной s?
Ну, допустим, у меня в переменной s хранится путь к файлу. Как переменной, допустим, f присвоить...

Можно ли назвать файл Python приложением?
Всем привет! Короче, изучаю Python, и смотрю, что там скрипт - и есть приложение. А как правило,...

Сохранить и назвать текстовый файл первой строчкой
Есть программа которая постоянно создаёт текстовый файл Как считать с первой строчки слова и...

Как реализовать запись этой переменной в файл (файл должен находиться на сервере)?
Допустим, есть переменная, которая хранить страницу, с которой посетитель пришел на сайт. Как с...

Как назвать ЯП?
Как назвать свой язык программирования, из чего исходить, лучше назвать буквой как большинство или...

Не знаю как назвать
Подскажите пожалуйста, где здесь ошибка? Пытался скомпилировать в Microsoft Visual C++ (2010)...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru