Консультация № 159257
31.01.2009, 12:26
0.00 руб.
02.02.2009, 09:43
0 1 1
Дан текстовый файл. В каждой строке записано 1 натуральное число. Вывести на экран все числа, у которых первая цифра равна последней

Обсуждение

Неизвестный
31.01.2009, 13:58
общий
это ответ
Здравствуйте, Cafter!
Программа на C++. Компилировалась в среде MS VS 2008. Краткие комментарии в программе.

Приложение:
#include <locale>
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main()
{
locale::global(locale("rus_rus.866"));
// Вводим имя файла
wcout<<L"Введите имя файла:";
wstring fname;
wcin>>fname;
// Открываем файл
wifstream in(fname.c_str());
if(in)
{
// Читаем до конца
while(!in.eof())
{
// Читаем числа.
unsigned int num;
in>>num;
// Если ошибка
if(in.fail())
{
in.clear();
wcout<<L"Ошибка ввода данных или их корректности. Проверьте входной файл."<<endl;
break;
}
// Вычисляем первую и последнюю цифры
unsigned int fd=num,ld=num%10;
while(fd>9)fd/=10;
// Если равны - печатаем
if(fd==ld)wcout<<num<<endl;
}
// Закрываем файл
in.close();
}
else wcout<<L"Не могу открыть файл:"<<fname<<endl;
system("PAUSE");
return 0;
}
Форма ответа