尝试从文本文件中逐行读取文本并输出到重新格式化的新文本文件

时间:2013-11-21 22:28:56

标签: c++

所以我试图从文件中读取文本。该文本以三个为一组

名称 国家 得分(1 2 3 4 5),可以是任意随机数和任何顺序

此时我遇到了将文本读入单独数组的问题

到目前为止,我有这个

#include <iostream>
#include <iomanip>
#include <cstring>
#include <fstream>
#include <string>
using namespace std;

int main()
{
    char* thePlayer[20];
    char* theCountry[20];
    char* theScore[100];

    fstream myInputFile("playerData.txt");
    fstream myOutputFile;

    // int highestRank = computeHighestRank();

    // myInputFile.open("playerData",    ios::in);
    // myOutputFile.open("playerReport", ios::out);

    myInputFile.open("playerData.txt"); //, ios::in);

    int theCount = 1;
    int i = 0;
    int j = 0;
    int k = 0;

while (! myInputFile.eof()) {


        myInputFile.getline << (thePlayer[i], theCount, '\n');
        theCount++;
        myInputFile.getline << (theCountry[j], theCount, '\n');
        theCount++;
        myInputFile.getline << (theScore[k], theCount, '\n');
        theCount + 2;
        cout << thePlayer[i] << endl;
        cout << theCountry[j] << endl;
        cout << theScore[k] << endl;
      }

    myOutputFile << "         1         2         3         4         5         6" << "\n\n" << "123456789012345678901234567890123456789012345678901234567890" << "\n\n" << "Player             Country             Highest Rank         " << "\n\n" << "------------------------------------------------------------" << "\n\n";

int computeHighestRank()
{

}

这给了我这个错误。任何想法都会很感激。

  

错误1错误C3867:'std::basic_istream<_Elem,_Traits>::getline':函数调用缺少参数列表;使用'&std::basic_istream<_Elem,_Traits>::getline'创建指向成员c:\users\justin\desktop\lab 7\lab 7\lab7source.cpp 71

的指针

3 个答案:

答案 0 :(得分:3)

当你阅读它时,那个是非常自我解释的。 getline没有参数列表getline(args)

此外,请习惯于自己搜索C3867这样的错误,它实际上会为您节省一些时间,因为每个可能的原因通常都有详尽的例子。

答案 1 :(得分:1)

嗯,基本上它出现在错误信息中; getline是一个函数,而不是流对象。因此,取代

myInputFile.getline << (thePlayer[i], theCount, '\n');

myInputFile.getline(thePlayer[i], theCount, '\n');

你应该更近一步。但你真正想做的可能更像是让thePlayer,theCountry和theScore属于std :: string类型和

myInputFile >> thePlayer >> theCountry >> theScore;

答案 2 :(得分:0)

在此处阅读getline函数http://www.cplusplus.com/reference/istream/istream/getline/

您有一个字符指针数组,但没有分配空间来存储字符串本身。即使您设法编译代码,最终也会导致应用程序崩溃。你最好使用字符串类。

此外,您没有递增i,j,k将覆盖相同的位置。 getline中的第二个参数应该是从输入流中读取的最大大小,因此它应该是一个更大的数字而不是theCount。