2013-02-25 13 views
0

我想從代碼內部打開兩個文件,但我無法嘗試從first.txt獲取我的三個數字,但它只打印第一個。我只需要幫助從我的文本文件打印所有的數字,所以不需要完成我的整個程序,但建議歡迎:)!比較來自c中兩個文件的數字;使用fopen等

int main(int argc, char **argv) 
    { 
    int *number1Pointer = malloc(80 * sizeof(int)); 
    FILE *file1; 
    //FILE *file2; 
    file1 = fopen("first.txt", "r"); 
    //file2 = fopen("second.txt", "r"); 

    int read = fscanf(file1, "%d", number1Pointer); 

    if(read != '\0') 
    { 
      printf("%d", &number1Pointer); 
    } 
    else 
    { 
      fclose(file1); 

    } 

    return 0; 
    } 

回答

0

如果您需要讀取3個數字,那麼你可以用這個代碼

int read = fscanf(file1, "%d %d %d", &number1Pointer[0], &number1Pointer[1], &number1Pointer[2]); 

了可變的讀取嘗試將有一些元素讀取或EOF。因此,檢查將不得不進行調整。

1

int read = fscanf(file1, "%d", number1Pointer);將剛纔讀一個 「%d」 像scanf("%d", &num)從標準輸入。您可以使用while循環或fscanf(file1, "%d%d%d", ...)

+0

程序示例:http://ideone.com/YxjE4Z – congusbongus 2013-02-26 00:20:50

0

如果文件包含由空格分隔的三個數字 - 即21 32 32 - 你需要一個格式字符串匹配的格式:

fscanf(file1, "%d %d %d", &number1Pointer[0], &numberPointer[1], &numberPointer[2]); 

記住free()你分配的變量使用後。