所以我應該從二進制文件中讀取一個隨機值。到目前爲止我的代碼看起來像這樣。如何在文件的位置指示符處讀取單個值?
char * filename = argv[1];
FILE * file = fopen(filename, "rb");
long int x;
x = random() % 100;
int ret = fseek(file, x, SEEK_SET);
所以我有位置指示器的文件在隨機值的位置。現在我怎樣才能從文件中只讀取一個值?我已經在這個位置上了,我只需要閱讀那個位置上的那個值。 此外,該文件有100個隨機整數放置在它。這是一個二進制文件。 我可以使用long int我必須從文件中獲取一個隨機值嗎?或者我需要傳遞fseek,如x = x * sizeof(int)?不確定是否可以從二進制文件中獲取我的randomg值,因爲我之前從未使用過這些文件,所以我不知道我的代碼如何看待它。由於它是用「rb」參數打開的,我的代碼是以base10讀取值還是會看到二進制轉換?
如果文件中有100個隨機「整數」,那麼你的隨機搜索位置必須是'sizeof(int)'的倍數 - 雖然我不寒而慄地問,如果文件本身包含隨機數據,誰在乎? –
[C,fread二進制bin文件]可能的重複(http://stackoverflow.com/questions/10841946/c-fread-binary-from-bin-file) – OldProgrammer