Использование Ubuntu Gedit для записи в файл - PullRequest
0 голосов
/ 30 апреля 2011

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

hello2.txt: file not recognized: File truncatedcollect2: ld returned 1 exit status

Что я делаю не так?(Я пробовал косые черты в обоих направлениях, и все равно получаю ту же ошибку.)

#include<iostream>
#include<fstream>
using namespace std;

int main()
{
    ofstream outStream;
    outStream.open(hello3.txt);
    outStream<<"testing";
    outStream.close;

    return 0;
}

1 Ответ

5 голосов
/ 30 апреля 2011

В нем есть две ошибки:

  1. hello3.txt - строка и поэтому должна быть в кавычках.

  2. std ::ofstream :: close () является функцией и поэтому требует скобок.

Исправленный код выглядит следующим образом:

#include <iostream>
#include <fstream>

int main()
{
    using namespace std; // doing this globally is considered bad practice.
        // in a function (=> locally) it is fine though.

    ofstream outStream;
    outStream.open("hello3.txt");
    // alternative: ofstream outStream("hello3.txt");

    outStream << "testing";
    outStream.close(); // not really necessary, as the file will get
        // closed when outStream goes out of scope and is therefore destructed.

    return 0;
}

И будьте осторожны: этот код перезаписывает всеэто было ранее в этом файле.

...