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

Исправить программу

28.01.2021, 19:48. Показов 1429. Ответов 35
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ввести с клавиатуры имя файла; если он существует, переименовать его (новое имя тоже вводится с клавиатуры).

Проблема:
Я ввожу имя файла например: P такой файл существует, предлагает переименовать, ввожу новое имя пишет, что файл переименован , но сам файл своего имени не меняет.
Как это исправить?


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 #include <iostream>
#include <string>
#include <fstream>
 
int main()
{
    setlocale(LC_ALL, "rus");
 
    std::string name, name_new;
    std::cout << "Входное имя файла:\n>> "; std::cin >> name;
 
    {   std::ifstream ifile(name);
    if (ifile.is_open())
    {
        std::cout << "Переименование файла :\n>> "; std::cin >> name_new;
        ifile.close();
        rename(name.c_str(), name_new.c_str());
    }
    }
 
    std::ofstream  ofile(name);
    ofile << name << std::endl;
 
    if (!name_new.empty())
        std::cout << "MESSAGE: Файл с именем " << name
        << " успешно был переименован в " << name_new << ".\n";
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.01.2021, 19:48
Ответы с готовыми решениями:

Исправить программу
Задание: Задан целочисленный одномерный массив а состоящий из n элементов. Написать программу вычисления суммы, разности и произведения...

Исправить программу
привет ,не могу понять что за проблема с этой программой)) помогите плиз понять ошибки,буду признательна!! #include &lt;iostream&gt; ...

Исправить программу
Как сделать ,чтобы последовательность символов выводился после 1 символа в слове. Результат работы программы. Введите предложение : ...

35
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
28.01.2021, 20:02
Цитата Сообщение от Fnastasia Посмотреть сообщение
Я ввожу имя файла например: P такой файл существует, предлагает переименовать, ввожу новое имя пишет, что файл переименован , но сам файл своего имени не меняет.
Как это исправить?
C++
1
2
3
4
5
std::string name, name_new;
std::cout << "Входное имя файла:\n>> "; std::cin >> name;
std::cout << "Переименование файла :\n>> "; std::cin >> name_new;
 
std::filesystem::rename(name, name_new);
Добавлено через 55 секунд
И открывать файл, перед тем как переименовывать, не нужно.
0
0 / 0 / 0
Регистрация: 15.04.2020
Сообщений: 109
28.01.2021, 20:53  [ТС]
oleg-m1973, Можете пожалуйста прислалась весь исправленный код?))

Добавлено через 37 минут
oleg-m1973, просто возникает ошибка , может я что то не так делаю )
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
28.01.2021, 20:57
Цитата Сообщение от Fnastasia Посмотреть сообщение
oleg-m1973, просто возникает ошибка , может я что то не так делаю )
Ну так покажи ошибку
0
0 / 0 / 0
Регистрация: 15.04.2020
Сообщений: 109
28.01.2021, 21:09  [ТС]
oleg-m1973,
Миниатюры
Исправить программу  
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
28.01.2021, 21:10
Сделай #include <filesystem>
0
0 / 0 / 0
Регистрация: 15.04.2020
Сообщений: 109
28.01.2021, 21:13  [ТС]
oleg-m1973, Не помогло)
Миниатюры
Исправить программу  
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12925 / 6793 / 1819
Регистрация: 18.10.2014
Сообщений: 17,190
28.01.2021, 21:20
Цитата Сообщение от Fnastasia Посмотреть сообщение
Я ввожу имя файла например: P такой файл существует, предлагает переименовать, ввожу новое имя пишет, что файл переименован , но сам файл своего имени не меняет.
Вы что-то выдумываете. Ваша программа все прекрасно переименовывает. Все работает.

http://coliru.stacked-crooked.... 2deafc802b

О чем вы?

(Только вы зачем-то после переименования снова создаете старый файл. Но это уже у вас надо спрашивать, зачем.)
0
0 / 0 / 0
Регистрация: 15.04.2020
Сообщений: 109
28.01.2021, 21:23  [ТС]
TheCalligrapher,
Миниатюры
Исправить программу  
0
0 / 0 / 0
Регистрация: 15.04.2020
Сообщений: 109
28.01.2021, 21:25  [ТС]
TheCalligrapher, Он не переименовался )
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12925 / 6793 / 1819
Регистрация: 18.10.2014
Сообщений: 17,190
28.01.2021, 21:32
Цитата Сообщение от Fnastasia Посмотреть сообщение
Он не переименовался )
Кто "он"? С чего вы взяли, что "он" не переименовался? Где это видно на вашем скриншоте?

(Я еще раз повторяю: в вашей программе после переименования P в N, вы снова создаете новый файл P.)
0
0 / 0 / 0
Регистрация: 15.04.2020
Сообщений: 109
28.01.2021, 21:35  [ТС]
TheCalligrapher, Файл с именем P , он не переименовался в N
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12925 / 6793 / 1819
Регистрация: 18.10.2014
Сообщений: 17,190
28.01.2021, 21:38
Цитата Сообщение от Fnastasia Посмотреть сообщение
Файл с именем P , он не переименовался в N
Я еще раз повторяю, жирным шрифтом, большими буквами: с чего вы взяли, что он не переименовался?
0
0 / 0 / 0
Регистрация: 15.04.2020
Сообщений: 109
28.01.2021, 21:42  [ТС]
TheCalligrapher, Но там в названии файла не появилась буква N вместо P
Или так и должно быть?
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12925 / 6793 / 1819
Регистрация: 18.10.2014
Сообщений: 17,190
28.01.2021, 21:43
Цитата Сообщение от Fnastasia Посмотреть сообщение
Но там в названии файла не появилась буква N вместо P
Или так и должно быть?
Ничего не понял. Где "там"? Где находится файл, на который вы смотрите? В каком каталоге?
0
0 / 0 / 0
Регистрация: 15.04.2020
Сообщений: 109
28.01.2021, 21:46  [ТС]
TheCalligrapher, на рабочем столе файл на скриншоте видно )
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12925 / 6793 / 1819
Регистрация: 18.10.2014
Сообщений: 17,190
28.01.2021, 21:54
Цитата Сообщение от Fnastasia Посмотреть сообщение
на рабочем столе файл на скриншоте видно )
"На рабочем столе"? С чего вы взяли, что ваша программа будет что-то "переименовывать" на рабочем столе????

Если вы будете указывать короткие имена, вроде P и N, то ваша программ будет переименовывать файлы в текущем рабочем каталоге. Вы запускаете свою программу в каком-то глубоком каталоге, который вы сами и привели на вашем скриншоте. Вот там она и будет переименовывать P в N. Рабочий стол здесь вообще ни при чем. Зачем вы смотрите на рабочий стол?
1
0 / 0 / 0
Регистрация: 15.04.2020
Сообщений: 109
28.01.2021, 21:57  [ТС]
TheCalligrapher, все поняла) извините вечер, устала и туплю немножечко ))
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
28.01.2021, 22:09
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
открывать файл, перед тем как переименовывать, не нужно
проверять существование файла с помощью exists ? можешь показать как это правильно записать ?
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
28.01.2021, 22:12
Цитата Сообщение от Yetty Посмотреть сообщение
проверять существование файла с помощью exists ? можешь показать как это правильно записать ?
Просто пытаться переименовать и смотреть код ошибки, если нужно. Зачем эти дополнительные проверки, если rename по-любому их будет делать?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.01.2021, 22:12
Помогаю со студенческими работами здесь

Исправить программу
Здравствуйте! У меня рабочая программа, которая удваивает каждый символ в строке, все работает) Препод сказал, что нужно сделать эту...

Исправить программу
Здравствуйте, не могли бы подсказать, как переделать программу, чтобы она выдавала только одно слово да П.5.18.Правил Запрещено...

Исправить программу
Дано выражение. По законам математики вне зависимости от значений переменных a и b выражение всегда имеет значение 1. Нужно исправить...

Исправить программу
#include &quot;&lt;iostream.h&gt;&quot; #include &quot;diophantine.h&quot; void main() { CDiophantine dp(1,2,3,4,30); int ans; ans =...

Исправить программу С++
Помогите пожалуйста исправить программу. Нужно , чтобы массив задавался с клавиатуры , а не выдавал уже имеющиеся числа. Массив должен...


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

Или воспользуйтесь поиском по форуму:
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