C ++ не создает текстовый файл - PullRequest
0 голосов
/ 25 февраля 2020

Я новичок в StackOverFlow.

Я использую Dev-C ++, и я хотел написать текстовый файл с моей программой на C ++. Но проблема в том, что моя программа не создает текстовый файл.

Вместо этого он создает файл с именем " 026.Writing-to-Files-With-Ofstream.o ". (Имя моего cpp файла: 026. Запись в файлы с-Ofstream. cpp)

Это не то, что я хотел.

Также Dev-C ++ не дает мне никаких ошибок или предупреждений.

Я пытался использовать CodeBlocks и все тот же результат. Он создает файл ".o", а не текстовый файл. Вот мой код:

#include <iostream>
#include <fstream>
int main(){
    std::ofstream file ("hello.txt");
    file << "Hello There!"; //line 5
    file.open("hello.txt"); //line 6

    return 0;
}

Я все перепробовал. Ничего на рабочем столе или в моем рабочем каталоге. Я переключил линии (5 и 6). Мне действительно нужна твоя помощь.

Ответы [ 3 ]

0 голосов
/ 25 февраля 2020

Я вижу здесь 2 проблемы:

Во-первых, вы только что скомпилировали код, чтобы на выходе был скомпилированный объектный файл с именем "026.Writing-to-Files-With-Ofstream.o". Вам нужно запустить его.

Во-вторых, код не совсем корректен. Вы уже открыли файл, когда сделали std::ofstream file("hello.txt");, поэтому вам не нужна строка 6. Вам нужно открыть файл перед записью в него. Также Вам необходимо закрыть файл после того, как вы закончили писать: file.close();

0 голосов
/ 25 февраля 2020

Я решил это! Я искал все Windows файлы / папки с опцией поиска в меню «Пуск». Это заняло много времени (10 минут), но я наконец узнал, где находится файл. Он был внутри папки с именем "VT Root". Спасибо за помощь,

0 голосов
/ 25 февраля 2020

Вы делаете слишком много.

std::ofstream file ("hello.txt");

Эта строка создает ofstream и открывает ее для записи. Когда поток открыт для записи, его содержимое на диске очищается!

file << "Hello There!";

Это похоже на печать чего-либо в ofstream. Обычно он сохраняется в буфере, который еще не сохранен на диске или не отображается на экране. (Чтобы действительно что-то сохранить на диск, вам нужно endl, flush или закрыть файл. Файл закрывается, когда заканчивается блок, в котором он был открыт, или когда вы закрываете его явно.)

file.open("hello.txt"); //line 6

Вы снова открываете файл для вывода, освобождая его содержимое на диске и освобождая буфер.

}

все, что находится в буфере, сохраняется на диск. Но в буфере ничего нет, потому что вы снова открыли файл!

Вы должны удалить строку 6.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...