写入/创建文件C ++时遇到问题

时间:2017-10-25 01:48:52

标签: c++ file-io

我制作了一个程序,它接受输入并将其打印到文本文件中,并为其指定创建日期的名称,有点像数字日记。但是当VS中的f5开始没有错误时,就好像一切都好,然后当我检查它是否创建了文件时,它无处可在项目文件夹中找到。提前感谢您的帮助。

        string date;
        time_t now;
        struct tm nowlocal;
        now = time(NULL);
        nowlocal = *localtime(&now); 
        int year = nowlocal.tm_year + 1970; 
        date = to_string(nowlocal.tm_mday) + ":" + to_string(nowlocal.tm_mon) + ":" + to_string(year) + ".txt";
        char write[900];
        ofstream file;
        file.open(date);
        cout << "input text to write to the journal(900chars max):";
        cin >> write;
        file << write << endl;
        file.close();

1 个答案:

答案 0 :(得分:0)

我认为您的主要问题是您的命名约定。文件名中不允许:,因此您的文件未被创建。还有一些其他错误。你还需要搞乱你的char数组。

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

int main()
{
    string date;
    time_t now;
    struct tm nowlocal;
    now = time(NULL);
    nowlocal = *localtime(&now);
    int year = nowlocal.tm_year + 1970;
    date = to_string(nowlocal.tm_mday) + "_" + to_string(nowlocal.tm_mon) + "_" + to_string(year) + ".txt";  //changed all ':' to '_'
    //char write[900];
    string write;
    cout << date << endl;
    ofstream file(date);
    //file.open(date);          //this was also causing an error
                                //your file is already open 
    cout << "input text to write to the journal(900chars max): ";

    getline(cin, write);
    //cin >> write;

    file << write << endl;
    file.close();




    system("PAUSE");
    return 0;
}

我修正了一些错误。它似乎现在正在运作。我不得不使用字符串而不是您正在使用的数组。这是在课堂上这样你可以在我的代码中遇到一些错误哈哈。希望这有帮助!祝你好运!