0

我想写一个程序,允许用户写一些随机的东西,但我得到一个错误说

没有匹配的调用
我无法弄清楚。请帮我。当您尝试回答这个问题时,请尝试更加具体。

这是我的代码

#include<iostream>
#include<fstream>
#include<string>

using namespace std;

int main()
{
    string story;
    ofstream theFile;
 theFile.open("Random.txt");
 while(cin.get(story,5000)!=EOF)
{
    theFile<< story;
}
return 0;
}
4

2 回答 2

1

带有 2 个参数的 cin.get 需要char*作为第一个参数,而您正试图string作为第一个参数传递。

如果您想std::string在行尾阅读而不是 C 字符串,请使用getline(cin, story)

如果要读取字符串直到下一个空格或换行符或另一个空白符号,请使用cin >> story;

于 2013-06-25T11:53:36.517 回答
1

您似乎正在尝试将 cin 的内容写入文件。您可以只使用流运算符:

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main()
{
  string story;
  ofstream theFile;
  theFile.open("Random.txt");

  if(cin >> story)
  {
    theFile << story.substr(0, 5000);
  }

  return 0;
}

我假设您只想要 Random.txt 中的前 5000 个字符...

于 2013-06-25T11:55:03.883 回答