gpt4 book ai didi

c++ - 初始化器但类型不完整?

转载 作者:太空狗 更新时间:2023-10-29 19:48:52 26 4
gpt4 key购买 nike

下面的代码在编译时给出了 2 个错误

#include <iostream>
#include <fstream>
#include <cstring>
#include "Translator.h"

using namespace std;

void Dictionary::translate(char out_s[], const char s[])
{
int i;
char englishWord[MAX_NUM_WORDS][MAX_WORD_LEN];

for (i=0;i < numEntries; i++)
{
if (strcmp(englishWord[i], s)==0)
break;
}

if (i<numEntries)
strcpy(out_s,elvishWord[i]);
}

char Translator::toElvish(const char elvish_line[],const char english_line[])
{
int j=0;

char temp_eng_words[2000][50];
//char temp_elv_words[2000][50]; NOT SURE IF I NEED THIS

std::string str = english_line;
std:: istringstream stm(str);
string word;
while( stm >> word) // read white-space delimited tokens one by one
{
int k=0;
strcpy (temp_eng_words[k],word.c_str());
k++;
}

for (int i=0; i<2000;i++) // ERROR: out_s was not declared in this scope
{
Dictionary::translate (out_s,temp_eng_words[i]); // ERROR RELATES TO THIS LINE
}
}

Translator::Translator(const char dictFileName[]) : dict(dictFileName)
{
char englishWord[2000][50];
char temp_eng_word[50];
char temp_elv_word[50];
char elvishWord[2000][50];
int num_entries;

fstream str;

str.open(dictFileName, ios::in);
int i;

while (!str.fail())
{
for (i=0; i< 2000; i++)
{
str>> temp_eng_word;
str>> temp_elv_word;
strcpy(englishWord[i],temp_eng_word);
strcpy(elvishWord[i],temp_elv_word);
}

num_entries = i;
}

str.close();

}
}

第一个在std::string istringstream stm(str);它说变量有一个初始值设定项但不完整的类型。如果我输入 std::string istringstream stm(str);它说 stm 之前的预期初始化程序和 stm 未在范围内声明

它还表示 out_s 未在 Dictionary::translate (out_s,temp_eng_words[i]) 的此范围内声明;。我不明白为什么一个参数被识别而一个参数不被识别?

提前致谢。

最佳答案

你必须包含头文件:

#include <sstream>
#include <string>

当你想使用stringstreamstring时。

同时:

Dictionary::translate (out_s,temp_eng_words[i]);

如果 out_s 不是该类的成员,您似乎忘记了在 toElvish 中使用它之前定义 out_s

同时:

 while( stm >> word) // read white-space delimited tokens one by one
{
int k=0; //^^Why do you initialize k everytime you read a word?
strcpy (temp_eng_words[k],word.c_str());
k++;
}

关于c++ - 初始化器但类型不完整?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16545753/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com