這基本上是我用來存儲整個文件的代碼的一部分,並且效果很好......但是當我嘗試存儲大於120的整數時就像程序寫入似乎是一堆垃圾,而不是我想要的整數。有小費嗎 ?我是一名大學生,不知道發生了什麼。無法將整數寫入二進制文件C++
int* temp
temp = (int*) malloc (sizeof(int));
*temp = atoi(it->valor[i].c_str());
//Writes the integer in 4 bytes
fwrite(temp, sizeof (int), 1, arq);
if(ferror(arq)){
printf("\n\n Error \n\n");
exit(1);
}
free(temp);
我已經檢查了atoi
一部分,它確實返回我想寫的數量。
如何驗證是否寫入了正確的數字? –
如果你想得到不僅僅是野蠻猜測的幫助,你需要發佈一個完整的(希望最小的)例子。您目前顯示的代碼看起來不錯。你確定'it-> valor [i]'總是一個有效的字符串嗎? – jrok
沒有理由給'malloc',只是創建一個'int temp',並將它的地址傳遞給''fwrite',就像'fwrite(&temp,sizeof(temp),1,arq);' – Collin