如何将保存在 .txt 文件中的过程值保存到 c 中的 4 个不同数组

How do I save process values saved in a .txt file to 4 different arrays in c

给定 processes.txt 以下信息

0 4 96 30
3 2 32 40
5 1 100 20
20 3 4 30

如何在 c 中将文件的每一行保存为 4 个不同数组的元素? 即

int arr1 = [0,4,96,30]
int arr2 = [3,2,32,40]
int arr3 = [5,1,100,20]
int arr[4] = [20,3,4,30]

这是我的代码,我在其中加载了 .txt 文件,但不知道如何将值存储在整数数组中。我的代码产生垃圾值。

如何编写程序?

    #include <stdio.h>

    int main(int argc, char *argv[])
    {
     FILE *fp;
     char *filename;
     char ch;

      // Check if a filename has been specified in the command
      if (argc < 2)
       {
            printf("Missing Filename\n");
            return(1);
       }
       else
      {
            filename = argv[1];
            printf("Filename : %s\n", filename);
       }

       // Open file in read-only mode
       fp = fopen(filename,"r");

       // If file opened successfully, then print the contents
       if ( fp )
          {
            printf("File contents:\n");
            while ( (ch = fgetc(fp)) != EOF )
               {
                    printf("%c",ch);
               }

           }
       else
          {
             printf("Failed to open the file\n");
            }
       // Saving the contents of the file in a Number Array
            int numberArray[16];
            int i;

        for (i = 0; i < 16; i++)
        {
            fscanf(fp, "%d", &numberArray[i]);
        }

        for (i = 0; i < 16; i++)
        {
            printf("Number is: %d\n\n", numberArray[i]);
        }


    return(0);
    }

您必须将指针 fp 重置为文件开头。因为 while 循环:while ( (ch = fgetc(fp)) != EOF ),指针 fp 在文件末尾。

int numberArray[16];
int i;
fseek(fp, 0, SEEK_SET);

fscanffor 循环应替换为 while 循环:

        int numberArray[16];
        int i = 0;
        fseek(fp, 0, SEEK_SET);
        while(fscanf(fp, "%d", &numberArray[i]) == 1 && i < 16)
        {
            i++;
        }
        // Then when you print the value from 0 to i
        for (int j = 0; j < i; j++)
        {
            printf("Number is: %d\n\n", numberArray[j]);
        }

不用的时候不要忘记关闭文件:

fclose(fp);

现在,如果要将 numberArray 分隔为 4 个数组 arr1arr2arr3arr4。您可以将 numberArray 的前 4 个元素(从 03)分配给 arr1,然后将接下来的 4 个元素(从 47) 到 arr2 等等。