FREAD字符我有一個虛擬的計劃,在一個文件中寫入一些字符:c - 從中文件
int main (int argc, char **argv)
{
char i = '0';
int j = 0;
FILE * fp = NULL;
fp = fopen("num.txt","w+");
if(!fp){
printf("fopen failed\n");
return -1;
}
fseek(fp, SEEK_SET, 0);
while(1){
if (j >500) {
fclose(fp);
return 0;
}
usleep(5000);
fwrite(&i,sizeof(char),1,fp);
if (j%27 ==0) {
i ='0';
}
i++;
j++;
}
fclose(fp);
return 0;
}
而另一個程序中,我需要從文件中讀取,這裏是一個片段:
if ((num = fopen("num.txt", "r+")) == NULL){
perror("Error al obrir l'arxiu");
}
fseek(num, posicio, SEEK_SET);
fread(resposta, sizeof(char), offset, fp);
while(contador <500){
printf("%c",resposta[contador]);
contador++;
}
printf(" la resposta contiene %s \n",resposta);A
我想從位置「posicio」讀取「偏移」字符。 「resposta」是500個字符的數組。當你在第二個程序中看到的是因爲我很絕望,當我執行第二個程序時,在控制檯中出現了一堆符號,例如:xMh 在最後的printf。
我試圖在字節中讀取字節,但它不斷讓我看到這些符號,我不知道可能會這樣做,我的第一個懷疑是我以某種方式以二進制模式打開文件,但不!
忽略第一個程序。將一些純文本放入「num.txt」中,並用此測試第二個程序。確認你正在獲取文件中的內容。你是否正在尋找文件的結尾?檢查fread()的返回值,它應該等於。 –
Kingsley
我需要的fseek,我不想從頭開始閱讀。從正常的文本我一直得到相同的不正確的輸出 – Asdemuertes
你試圖實現與(j%27 == 0) - 循環的信我回到了一些點? – Kingsley