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

05.04.2009
14
0
#1
Здравствуйте, прошу прощение, если подобные вопросы уже были на форуме(беглый взгляд не обнаружил)
я считываю в С++ (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, вот запутался... может дадите совет как обойти эту проблемку :)