【发布时间】:2014-08-07 09:32:23
【问题描述】:
我有一个名称的文本文件。我想将文本文件读入流中,将其显示到控制台。完成后,它将提示用户输入他们的姓名。然后它应该将其添加到文件中。
我可以让它分别做这两件事,但不能一起做。 这是我的代码。
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
using namespace std;
using namespace System;
int main(array<System::String ^> ^args)
{
fstream myfile;
string line;
string name;
myfile.open("Names.txt",ios::out | ios::in | ios_base::app);
if (myfile.is_open())
{
while( getline(myfile, line) )
{
cout << line << endl;
}
cout << "Enter your name!\n";
getline (cin, name);
myfile << name;
myfile.close();
}
else
{
cout << "file was not opened\n";
}
return 0;
}
如果我将 while 循环留在其中,它会将所有名称写入控制台,但不会将用户输入的名称附加到列表中。如果我取出 while 循环,我可以为文件添加一个名称,但当然我不会得到该文件中已经存在的名称列表。
我最好的猜测是,我认为这可能与以下事实有关信息流中没有剩余空间了吗?
【问题讨论】:
-
那不是 C++:
array<System::String ^> ^args)?!? -
我使用的是Visual Studio,我选择了项目类型CLR Console App。它是为我提供的。
-
看起来你需要更多标签。
-
正如我的问题所解释的那样,对 C++ 来说非常陌生。这会影响我尝试使用此文件 IO 做什么吗?
-
我不认为会,但我不能肯定地说。