2012-12-24 66 views
1

當我嘗試打印expectedRuntime變量時,它將輸出expectedRuntime的地址。 但我可以正確打印timeOfSubmission變量。任何人都可以幫助我嗎?從文件中獲取結構的輸入並將其打印出來C

fscanf(myInput, "%d", & (newProcess->expectedRunTime)); 
(newProcess->expectedRunTime)=(newProcess->remainingRunTime); 

其中有垃圾如無物已被寫入newProcess->remainingRunTime

struct process 
{ 
int timeOfSubmission; 
int remainingRunTime; 
int expectedRunTime; 
char processName[20]; 

}; 

int main() 
{ 
FILE *myInput; 
myInput = fopen("input.txt", "r+"); 
while (!feof(myInput)) 
{ 

    struct process * newProcess=(struct process *)malloc(sizeof(struct process)); 

    fscanf(myInput, "%s", newProcess->processName); 
    fscanf(myInput, "%d", & (newProcess->expectedRunTime)); 
    (newProcess->expectedRunTime)=(newProcess->remainingRunTime); 
    fscanf(myInput, "%d", & (newProcess->timeOfSubmission)); 
    printf("%s ",newProcess->processName); 
    fflush(stdout); 
    printf("%d ",newProcess->expectedRunTime); 
    fflush(stdout); 
    printf("%d \n",newProcess->timeOfSubmission); 
    fflush(stdout); 
} 
return 0; 
} 

回答

3

閱讀newProcess->expectedRunTime, 後,你與覆蓋它。

+0

我切換方:(newProcess-> remainingRunTime)=(newProcess-> expectedRunTime);它真的有效。這個小東西已經毀了我的整個項目到目前爲止:)非常感謝! –

相關問題