С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/34: Рейтинг темы: голосов - 34, средняя оценка - 4.97
18 / 14 / 4
Регистрация: 02.04.2017
Сообщений: 125

ofstream не пишет текст в файл

13.11.2019, 00:25. Показов 6969. Ответов 8

Студворк — интернет-сервис помощи студентам
Добрый день, столкнулся с такой проблемой, что в вижаке 2017 года не записывается строка в файл

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void writeChapters(std::string name, std::string text) {
 
 
    std::fstream out(name.c_str()); 
    //out.open);
    if (!out)
    {
        std::cout << "Nooo!";
    }
    else {
        out << text ;
    }
 
    out.close(); 
}
Пробовал писать полный путь, пробовал в корневой папке писать, пробовал просто строку в кавычках писать...
Ничего не работает, файл 100% открывается но не пишется
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.11.2019, 00:25
Ответы с готовыми решениями:

Не могу открыть файл OFSTREAM
Доброго времен суток! Помогите разобраться: пытаюсь открыть файл с параметром ios::out, а он не открывается :( Почему это может...

создать файл использую string в ofstream
хочу сделать ввод имени создаваемого файла с клавы, нельзя так? только char? string namefile; cin&gt;&gt;namefile; ...

Не сохраняется файл с абсолютным именем, ofstream
На Win7 пытаюсь вывести данные в файл: ofstream fout(&quot;C:\\data.txt&quot;); Если делать вывод fout(&quot;data.txt&quot;) - все работает. ...

8
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
13.11.2019, 01:02
Вы только часть кода сбросили, смотрите что не так. для записи достаточно
C++
1
2
ofstream out("C:\\FromC\\myfile.txt");   // Открываем файл для записи
        out << "Hello World" << '\n';
вместо name.c_str() запишите просто name
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
13.11.2019, 01:03
C++
1
std::ofstream
Цитата Сообщение от rayzor48 Посмотреть сообщение
в вижаке 2017 года
Это какое-то новомодное название студии у подростков такое?
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12930 / 6798 / 1820
Регистрация: 18.10.2014
Сообщений: 17,208
13.11.2019, 01:11
Цитата Сообщение от rayzor48 Посмотреть сообщение
Пробовал писать полный путь, пробовал в корневой папке писать, пробовал просто строку в кавычках писать...
Так а почему вы открываете std::fstream, хотя в заголовке вопроса у вас идет речь о std::ofstream?

Писаться, однако, должно и в std::fstream. И прекрасно пишется...

Показывайте, как вы вызывали эту функцию.
0
18 / 14 / 4
Регистрация: 02.04.2017
Сообщений: 125
13.11.2019, 01:26  [ТС]
std::string name2 = "C:\\Users\\rayzo\\source\\repos\\lab1st asC\\glava1enc.txt";
writeChapters(name2, textEnc);

Добавлено через 2 минуты
Опечатался...
Не знаю, просто лень было писать полностью
Я пробывал и
C
1
2
3
4
5
    FILE *targetFile = fopen(name.c_str(), "2");
 
    fwrite(text.c_str(), 1, text.length(), targetFile);
 
    fclose(targetFile);
и через fstream
Вижу, что файл открыт(в консоль предупреждения не выводятся)
Но в файле пусто

Добавлено через 4 минуты
На name ругается code blocks, в visual studio - просто name
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
13.11.2019, 01:38
так запишет ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
 
void F (string name, string text) 
{ 
    ofstream out(name);  
        out << text << '\n' ;    
}
 
int main() 
{    
    string textEnc="ABCD", name2="C:\\Users\\rayzo\\source\\repos\\lab1stasC\\glava1enc.txt";
    F(name2, textEnc);
return 0;
}
1
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12930 / 6798 / 1820
Регистрация: 18.10.2014
Сообщений: 17,208
13.11.2019, 01:39
Цитата Сообщение от rayzor48 Посмотреть сообщение
FILE *targetFile = fopen(name.c_str(), "2");
Что это за "2" такое???

Цитата Сообщение от rayzor48 Посмотреть сообщение
Но в файле пусто
В смысле, после fclose размер файла равен 0?

Цитата Сообщение от rayzor48 Посмотреть сообщение
На name ругается code blocks, в visual studio - просто name
Для name нужен C++11 или позже. Вы просто не включили его в code blocks.
1
18 / 14 / 4
Регистрация: 02.04.2017
Сообщений: 125
13.11.2019, 01:53  [ТС]
2 - "w", находится над двойкой, опечатываюсь...
После fclose - да
Я подозревал, что дело в стандартах, но мне было проще перевести в массив чаров,,

Итак, а теперь ккульминация: ВСЕ ПРЕКРАСНО РАБОТАЛО ПРОСТО АНТИВИРУС ВСЕ ЗАПИХАЛ В ИЗОЛИРОВАННУЮ ВИРТУАЛЬНУЮ СРЕДУ...

Ток что решил проверить что там в среде и нашел несколько файлов с записанной 1 главой...
Прошу прощения)
Спасибо всем

Добавлено через 50 секунд
ну, если добавить
#include "pch.h"
или исключить его из сборки - да

почему-то сразу не подумал проверить содержимое файла через ifstream(на самом деле не ожидал что виновен антивирус) из-за чего потерял 3-4 часа жизни
1
0 / 0 / 0
Регистрация: 05.05.2021
Сообщений: 1
05.05.2021, 14:39
А как вы решили эту проблему?У меня такая же
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.05.2021, 14:39
Помогаю со студенческими работами здесь

Ofstream записывает в файл 16-стиричный код
mvs 2017 вместо строки в файл записывается 4865 6c6c 6f20 776f 726c 6421 этот же код в mvs 6.0 работает нормально Подскажите в чем...

Чтением и запись в файл, ifstream/ofstream
Здравствуйте, уважаемые участники форума, есть такое задание, возвести в квадрат каждый элемент массива, стоящий на четном месте и в куб...

Не могу создать файл в поток ofstream
Всех с наступившем НГ!) Не могу открыть/создать файл в поток. fstream somf; ...

что делать если ofstream не закрывает файл
Код: if (NeedUnitLog) { NeedUnitLog = false; ofstream unilog; unilog.open(&quot;UnitLog.txt&quot;, ios::out); ...

ofstream.flush() не обновляет файл! (не сохраняет на диск)
ofstream logfile; ... { .. logfile.open(&quot;log.txt&quot;, ios::out | ios::app); .. } .. { ..


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru