#c #arrays #function #class #compiler-errors
#c #массивы #функция #класс #ошибки компилятора
Вопрос:
Я пытаюсь создать программу, которая при вставке слова в текстовый документ. Определение выводится на консоль. Однако всякий раз, когда я пытаюсь вывести определение, я получаю «Место чтения с нарушением доступа» в строке std::cout << Dict[i 1] << std::endl;
Любая помощь в этом будет оценена.
#pragma once
#include <iostream>
class Synonym
{
public:
std::string Dict[14] = {"foo1", "a two o's file", "fooo2,", "a three o's file", "foooo3", "a four o's file", "fooooo4", "a five o's file", "foooooo5", "a six o's file", "fooooooo", "a seven o's file"};
~Synonym();
void checkEqual();
};
#include "Synonym.h"
#include <iostream>
#include <fstream>
Synonym::~Synonym()
{
}
void Synonym::checkEqual()
{
std::ifstream fin;
fin.open("Synonym.txt");
std::string x;
for (int i = 0; i < sizeof(Dict); i)
{
fin >> x;
if (x == Dict[i])
{
std::cout << Dict[i 1] << std::endl;
}
}
}
Комментарии:
1. Ну, вы перебираете Dict с i = 0 до 13 (sizeof(Dict)), а затем внезапно пытаетесь получить доступ к i 1 … теперь, как вы думаете, что произойдет, когда i = 13?
2. А, понятно. Спасибо, что указали на это
3.
sizeof(Dict)
будет14 * sizeof(std::string)
, это слишком много