Мое намерение состоит в том, чтобы читать каждые элементы во 2-й колонке в buffer[]
из следующего .txt файла:Как перенести указатель файла в определенное место с помощью fseek()?
9992891234 09,920 15,771 11,909
9992345971 07,892 12,234 09,234
9992348971 64,567 70,456 50,987
9992348231 89,234 85.890 58,982
меня знает, как сделать это с помощью fscanf()
:
for (int i=0;i<4;i++)
{
fscanf(pFile, "%lld", &junk);
fscanf(pFile, "%f", &buffer[i]);
fscanf(pFile, "%f", &junk);
fscanf(pFile, "%f", &junk);
}
Однако, поскольку я выполняю параллельную программу, которая требует, чтобы я использовал разные потоки Windows для чтения разных столбцов, поэтому мне нужно будет прочитать элементы во втором столбце напрямую, используя fseek()
.
Вопрос в том, что мне следует поместить во 2-й аргумент в fseek()
в код ниже, чтобы переместить указатель на файл, чтобы прочитать 2-й элемент 2-й строки?
fscanf(pFile, "%llf", &junk);//<------this is used to skip the 1st data
for (int i=0;i<4;i++)
{
fscanf(pFile, "%f", &buffer[i]);
fseek (pFile , ??, SEEK_CUR);//<----how do I calculate this offset?
}
Вам нужно только вызвать fscanf() один раз в строке, пока feof (pFile). –