我今天刚刚开始使用 c++,并且浏览了很多关于这个主题的提要。在搜索时,我发现了一个名为 ignore 的函数,它有点帮助。我最初的问题是运行时跳过了一个输入。我发现这可能是由于 \n 仍在缓冲区中,所以我使用 cin.ignore() 函数将其刷新。但是,我仍然没有得到我想要的输出。这是我的代码:
{
time_t current;
char event[30];
char details[256];
char outFileName[21];
cout<< "Enter name of file to hold the input.[20 Character Max]: ";
cin>>outFileName;
ofstream outFile(outFileName);
cout<< "Event: ";
cin.getline(event, 30, '\n');
cin.ignore();
outFile<< event<< '\n';
cout<< "Details: ";
cin.getline(details, 256, '\n');
cin.ignore();
outFile<< details<< '\n';
current = time(NULL);
outFile<< ctime(¤t);
}
对于输出,第一行是黑色的,第二行列出了第一行应该是什么,它也缺少第一个字母,第三行与系统时间无关。