所以我试图从文件中读取文本。该文本以三个为一组
名称 国家 得分(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
答案 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。