Я начинаю программировать. В моем текущем университетском задании мне предлагается прочитать текст из файла и получить «действительные» слова, т.е.end
вместо end.
. Я застрял в той части, где я должен положить новое обнаруженное слово в массив слов.Назначение typedefined массива другому (C++)
Compiler ошибка: массив должен быть инициализирован с помощью брекет-заключенный инициализаторе
int const MAX_WORDS = 100000;
int const MAX_WORDLENGTH = 80;
typedef char Word [MAX_WORDLENGTH];
typedef Word Words [MAX_WORDS];
Words words ;
bool read_file (char filename [80])
{
ifstream file(filename);
if(!file) {
cout << "wrong filename";
return false;
}
char c;
int word_idx = 0;
Word word = words[word_idx++];
int letter_idx = 0;
int connector_count = 0;
while (file.get(c)) {
if ((c>='A' && c<='Z')||(c>='a' && c<='z'))
{
word[letter_idx++] = c;
cout << c << endl;
}
else {
if (c == '-') {
if(connector_count==0) {
word[letter_idx++] = c;
connector_count++;
}
else {
if(connector_count==1) {
word[letter_idx-1] ='\n';
Word word = words[word_idx++];
}
}
}
}
}
И 'слова' есть ....? В этом отношении «Слово» есть ...? (Я предполагаю typedef для массива 'char' на последнем). * Редактировать: * Ну посмотрите на это, хрустальный шар все еще имеет некоторый блеск. – WhozCraig
извините, забыл строки typedef ... они теперь отредактированы! – Julius361
Я собираюсь предположить, что какой-то академик сказал вам, что использование 'std :: string' вне таблицы, потому что это значительно облегчило бы это *. – WhozCraig