Я пытаюсь создать программу сортировки слов, которая будет читать слова в текстовом файле, а затем записывать их в новый файл в порядке от самых коротких слов до самых длинных слов.Так, например, если первый файл содержит:
слон
собака
мышь
После выполнения программы я хочу второй файл (который изначально пуст), чтобы содержать:
собака
мышь
слон
Вот код:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
string word;
ifstream readFrom;
ofstream writeTo;
readFrom.open("C:\\Users\\owner\\Desktop\\wordlist.txt");
writeTo.open("C:\\Users\\owner\\Desktop\\newwordlist.txt");
if (readFrom && writeTo)
{
cout << "Both files opened successfully.";
for (int lettercount = 1; lettercount < 20; lettercount++)
{
while (readFrom >> word)
{
if (word.length() == lettercount)
{
cout << "Writing " << word << " to file\n";
writeTo << word << endl;
}
}
readFrom.seekg(0, ios::beg); //resets read pos to beginning of file
}
}
else
cout << "Could not open one or both of files.";
return 0;
}
ДляНа первой итерации цикла for вложенный цикл while работает нормально, записывая правильные значения во второй файл.Однако во всех следующих итерациях цикла for что-то идет не так, потому что в файл не записывается больше слов.Почему это так?
Большое вам спасибо.