Помогите мне с моим кодом
у меня есть пост-лабораторный вопрос в университете
и я попытался написать код, но он не сработал
это мой пост-лаборатория вопрос:
Форма множественного числа существительных
В английском языке существительные флексируются по грамматическому числу — то есть единственному или множественному числу. В этой задаче мы используем простую модель построения множественного числа из сингулярной формы.
Эта модель не всегда делает английские формы множественного числа правильно, но она работает в большинстве случаев. Забудьте о реальных правилах, которые вы знаете при решении задачи, и используйте заявление как формальный документ.
Вам дается несколько существительных в единственном числе, и ваша программа должна перевести их во множественное число, используя следующие правила:
· Если единственное существительное заканчивается на ch, x, s, o, то множественное число образуется путем добавления es. Например, ведьма- "Ведьмы", помидор-"помидоры".
· Если существительное заканчивается на F или Fe, во множественном числе форма заканчивается весь. Например, лист-> листья, нож-> ножи. Обратите внимание на букву f, ставшую v.
· Существительные, оканчивающиеся на y, меняют окончание на ies во множественном числе. Например, семья-> семьи.
· Во всех остальных случаях множественное число образуется путем сложения s. Например, книга->книги.
Ввод (чтение из файла)
Чтение из файла (file1.txt) много слов. Слово состоит из 2 до 25 строчных латинских букв. Это не гарантирует, что данные слова являются реальными английскими словами из словаря.
Вывод (запись в файл)
Выведите n заданных слов во множественном числе на отдельных строках файла. Держите слова в том же порядке, в каком они даны во входных данных.
Что я уже пробовал:
я начинаю писать вот так
#include <iostream> #include <string> #include <fstream> using namespace std; int main(){ string singular; ifstream writing; ifstream reading; writing.open("singular.txt"); while (!writing.eof()) { cin>>singular; writing>>singular; for(int i=0;i<singular.length();i++) if (singular[i]>='a' && singular[i]<='z') continue; else break; if (singular.length()-1=='o' || singular.length()-1=='x' || singular.length()-1=='s' ) writing>>singular+"es\n"; else if ( singular.length()-1=='f') writing>>singular+"ves\n"; else if (singular.length()-2=='ch') writing>>singular+"es\n"; else if (singular.length()-2=='fe') { writing>>singular+"ves\n"; writing>>singular.erase(singular.length()-1)+"ies\n";} else if ( singular.length()-1=='y') writing>>singular.erase(singular.length()-1)+"ies\n"; else writing>>singular+"s\n"; } writing.close(); return 0;}
CPallini
А в чем проблема вашего кода?
OriginalGriff
"это не сработало" - это один из отчетов об ошибках, которые мы получаем довольно часто, и он всегда совершенно бесполезен-он ничего не говорит нам о вашей проблеме, кроме "У меня есть проблема", и мы знали это, потому что вы задаете вопрос!
Что он сделал такого, чего вы не ожидали, или не сделали того, что вы сделали?
Когда он это сделал?
Есть ли какие-либо сообщения об ошибках?
Что вы сделали, чтобы заставить его сделать это?
Что вы пытались сделать, чтобы выяснить, почему?
Каковы же были результаты?
Какая помощь вам нужна?
Это все вопросы, на которые нам нужен ответ - или мы вообще не сможем вам помочь!
Member 13677678
ну ,когда я запускаю его, он показывает мне черный экран и позволяет мне написать слово
а потом ничего не происходит
он не записал в файл и даже не создал файл
я не знаю почему потому что этот способ работал в лаборатории
// я работаю над visual studio 2012