• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Работа С Файлом, Проблемка

  • Автор темы Wolfises
  • Дата начала
W

Wolfises

Здравствуйте, прошу прощение, если подобные вопросы уже были на форуме(беглый взгляд не обнаружил)
я считываю в С++ (MS Visual Studio 2005) посимвольно с помощью getline символы, проблема возникает в конце строки
фаил "test.txt" содержит следующие данные
cos
12 33.025 55.23 1.01
в шестнадцатеричной системе:
00000000: 63 6F 73 20 20 20 20 20 20 20 20 20 20 0D ОA 31 | COS ..1
00000010: 32 20 33 33 2Е 30 32 35 20 20 35 35 2Е 32 33 20 | 2 33.025 55.23
00000020: 31 2Е 30 31 20 20 20 20 20 20 20 20 20 20 20 20 | 1.01
00000030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |
00000040: 20 20
Код:
//...
ifstream file("test.txt");
if (!(file))
{
cout<<"Error, File can not open";
return 1;  
}
file >> ch; // string ch;
double k;
char str;
ofstream file_out("test_result.txt", ios::trunc); //в данном случае не важно
file_out << ch << '\n'; // не важно
while (!(file.eof()))
{
file.getline( &str , 1 );
if (str=='\0') continue; // при добавлении этой строки образуется бесконечный цикл
//я не уверен, но вроде '\0' обозначает конец строки, исправте если не так пожалуйста
if ((str=='\n') || (str == ' ')) continue;
if ( !( (str=='+') || (str=='-') || ( (str>='0') && (str<='9') ) ) )
{
cout << "Error data, Invalid symbol\n";
return 0;
}
// ...

вот, по сути я просто хочу считывать числа типа double, вот запутался... может дадите совет как обойти эту проблемку :)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!