将单个单词从文件存储到字符串类数组(C ++)中的元素中

时间:2015-04-10 19:22:43

标签: c++ string pointers ifstream c-strings

我试图在字符串类数组中插入几个字符串类数组(取自输入文件)。

我正在编写的程序由一个Dictionary类组成,其中默认构造函数接受一个文件名(例如" words.txt")作为参数,从而将每个单独读取的单词存储到一个单独的String类数组中的元素。 文本文件看起来像:

example
text
file
here
etc...

我编写的代码用于测试它(完全不起作用)如下:

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

class Dictionary(const char *file) {
public:
  string wordList;
  int numWords;
};

Dictionary::Dictionary(const char *file) {

  ifstream inFile;
  int SIZE = 50000;
  char pass[SIZE+1];
  numWords = 0;
  inFile.open(file);
  if(!inFile)
    cout << "File can not be opened" << endl;
  else
    while(inFile.getline(pass, SIZE)){
      wordList[numWords] = pass[SIZE+1]; 
      numWords++;
    }
  }
  inFile.close();
  cout << wordList[5] << endl;
  cout << numWords << endl;
}

int main(){
  Dictionary *foo = new Dictionary("words.txt");
};

代码编译但打印:

//should print out the 5th word in the file but nothing
0

我想知道我到底错过了什么?我已经在一夜之间解决了这个问题,我觉得解决方案很简单,但我忽略了这一点。

我的主要问题似乎是在我的其他试验中打印出的错误信息,其中包含&#34;无效转换来自&#39; char *&#39;到了&#39; char&#39;。此外,未示出的程序中的其他函数需要操纵String类数组的元素中的每个单词的字母(优选地作为字符串类数组而不是C字符串)。我迷失在这里。请帮帮忙?

我找到了这个有用的链接,但它适用于Java。什么是C ++的等价物? http://www.mathcs.emory.edu/~cheung/Courses/170/Syllabus/09/String-array.html

1 个答案:

答案 0 :(得分:0)

有几个地方可以开始:

  1. 你正在尝试使用wordList,它是一个字符串类型,就像它是一个字符串数组。 wordList [5]将为您提供wordList中的第六个字符...假设您已正确分配它。
  2. SIZE似乎未定义。