我試圖讀取包含82503x1200矩陣中的雙格式化數字的文件。我正在閱讀文件,但沒有找到指定lseek正在使用的號碼大小的方法。爲什麼給我那個數字而不是文件號?C++:lseek給予原始文件不同的值:
float fd;
float ret;
float b;
const size_t NUM_ELEMS = 11;
const size_t NUM_BYTES = NUM_ELEMS * sizeof(float);
fd = open("signal_80k.txt",O_RDONLY);
if(fd < 0){
perror("open");
//exit(1);
}
ret = lseek(fd, seekCounter*NUM_BYTES, SEEK_SET);
ret = read(fd, &b, sizeof(float));
cout<<"> " << seekCounter << ": " << b<<endl;
seekCounter++;
close(fd);
它打印:
0:1.02564e-08 1:1.08604e-05 2:0.000174702 3:6.56482e-07 4:2.57894e-09
但前值: 9.402433000000000e 8.459109000000000e 8.947654000000000e + 03 9.021620000000000e
這是它的外觀在MATLAB
你的代碼看起來像你正在閱讀的二進制數據,但你的文件擴展名是TXT這表明它是文本數據。 – Daniel
嗨丹尼爾,是的,它是文本數據...這意味着lseek不是正確的方法? – Dazzid
你的文本文件是怎樣的? – Daniel