Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/34: Рейтинг темы: голосов - 34, средняя оценка - 4.85
 Аватар для Ludwig
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 20

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

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

Студворк — интернет-сервис помощи студентам
Господа, помогите новичку, я пишу программу и я хочу, чтобы она создавала файл, названной по имени переменной n, которую я ввожу чуть-чуть раньше. Т.е. если я в качестве переменной пишу Hello world, то у меня файл, куда далее будут записаны некие данные назывался "Hello world"
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.02.2013, 15:09
Ответы с готовыми решениями:

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

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

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

31
 Аватар для NIch
401 / 312 / 74
Регистрация: 17.03.2010
Сообщений: 1,119
22.02.2013, 15:41
Хм...
Программа ничего не знает про названия переменных, после компиляции остаются только адреса в памяти.
Есть такая технология RTTI, но она должна поддерживаться компилятором.
http://ru.wikipedia.org/wiki/%... 1%8B%D1%85
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
22.02.2013, 15:50
Если имеется в виду текстовый файл и нужно его создать, присвоив название из какой-то переменной, то так:
C++
1
2
3
char n[10];
std::cin>>n;
std::ofstream file(n);
1
 Аватар для NIch
401 / 312 / 74
Регистрация: 17.03.2010
Сообщений: 1,119
22.02.2013, 15:58
Так, то да...но менять код нужно в 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
 Аватар для Xipxop
481 / 9 / 6
Регистрация: 28.12.2011
Сообщений: 151
22.02.2013, 16:09
Возможно я и ошибусь, но ведь компилятор все затирает, затирает названия переменных в "кашу-малашу" читабельную только для компа...
0
 Аватар для Schizorb
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
22.02.2013, 16:14
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
 Аватар для NIch
401 / 312 / 74
Регистрация: 17.03.2010
Сообщений: 1,119
22.02.2013, 16:38
См. 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
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
22.02.2013, 17:30
Цитата Сообщение от Ludwig Посмотреть сообщение
Господа, помогите новичку, я пишу программу и я хочу, чтобы она создавала файл, названной по имени переменной n, которую я ввожу чуть-чуть раньше. Т.е. если я в качестве переменной пишу Hello world, то у меня файл, куда далее будут записаны некие данные назывался "Hello world"
Файл по имени переменной или по введённому значению строковой переменной? Не может быть переменной с именем Hello world. Пробелы в имени переменной не допускаются. Если по значению, то 3 пост.
1
 Аватар для Ludwig
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 20
22.02.2013, 17:56  [ТС]
alsav22, Я говорил к примеру. Мне просто нужно, чтобы имя создаваемого файла было таким, какой является переменная (если n=5, то файл называется 5.txt, если n=abrakadabra, то файл, соответственно, abrakadabra.txt)
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
22.02.2013, 18:00
Только если имя файла из нескольких слов, то:
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
 Аватар для Ludwig
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 20
22.02.2013, 18:03  [ТС]
Прошу прощения=)
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
22.02.2013, 18:06
Цитата Сообщение от Ludwig Посмотреть сообщение
Прошу прощения=)
Вообщем-то, не за что. Я последний пост дописал, по поводу, если переменная не строковая.
0
 Аватар для Ludwig
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 20
22.02.2013, 18:20  [ТС]
BumerangSP, а как задать формат файла?
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
22.02.2013, 18:31
Ludwig, в смысле, расширение (txt,...) ? Или тип (текстовый, бинарный)?
0
 Аватар для Ludwig
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 20
22.02.2013, 18:37  [ТС]
BumerangSP, ну, конкретно сейчас, нужен txt, но я был бы очень благодарен, если бы знал побольше на эту тему)
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
22.02.2013, 18:37
Расширение указывается в имени. Режим открытия при создании потока или открытии(по умолчанию открывается как текстовый).
0
 Аватар для Ludwig
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 20
22.02.2013, 18:41  [ТС]
alsav22, конкретно с помощью этого:
Цитата Сообщение от BumerangSP Посмотреть сообщение
Код C++
1
2
3
char n[10];
std::cin>>n;
std::ofstream file(n);
у меня создается файл, но мой компьютер не знает как его открывать
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
22.02.2013, 18:44
Покажите весь код и что вводите, как имя файла.
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
22.02.2013, 18:46
Ludwig, да прям так:
C++
1
2
char n[] = "Hello.txt";
std::ofstream f(n);
По поводу режимов и прочего можно почитать про тут
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
22.02.2013, 18:46
Вот это код попробуйте:
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.02.2013, 18:46
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru