Подскажите, плз, как организовать ввод чисел, разделённых трубой?
Это - бред. Покажи лучше код.
if (fscanf(in,"%f",&num)==1)
{
...
}
else
{
fgetc(in);
}
Ничего особенного в коде нет...
Ну, что-то типа этого:
double per1,per2,per3;
FILE *datafile;
datafile = fopen ("file","r");
while (feof(datafile) == 0){
fscanf (datafile,"%lf %lf %lf",per1,per2,per3);
}
а в файле - строчки с полями из трёх чисел. А иногда после числа без пробела идет труба. Например:
1.234|
Блин. А я себе уже нафантазировал... Тогда делай как сказано выше.
Мне нужно считывать около двадцати чисел из строчки в структуру...
bool read_next_double_from_file (FILE *in, double *result)
{
while (fscanf (in, "%lf", result) != 1)
{
if (feof (in return false;
fgetc (in);
}
return true;
}
А я туплююю...
Спасибо, сейчас попробую...
Маза сделать fgets, а потом уже пытаться с этой строчкой что-нить сотворить.
Угу. А потом еще поебаться с тем что половина числа в одной строке(про параметр size не забыл? а другая половина - в другой.
Ну ты знаешь, по сравнению с тем, что происходит когда ты делаешь хоть немного нетривиальный фсканф а он обламывается - это все херня. Можно поставить size = 2048.
Когда обламывается scanf - не происходит ровным счетом НИЧЕГО. Просто указатель в буфере не перемещается Пусть уж лучше библиотека занимается управлением буферами, у нее это получится получше... И без глюков, что важнее.
Не, у меня только один глюк может возникнуть, труба эта.
Почтиай Лебланка "Защищенный код".
зы: че-то фамилия афтора меня не вдохновляет
У меня в электронном нет. Ты о людях по фамилиям судишь?
Оставить комментарий
bvasilik
В Си? Я беру обычный fscanf, читаю поток, но когда в нём попадается символ |, он зацикливатесяПочему и как это исправить, подскажите, пожалуйста?