我制作了一个程序,它接受输入并将其打印到文本文件中,并为其指定创建日期的名称,有点像数字日记。但是当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();
答案 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;
}
我修正了一些错误。它似乎现在正在运作。我不得不使用字符串而不是您正在使用的数组。这是在课堂上这样你可以在我的代码中遇到一些错误哈哈。希望这有帮助!祝你好运!