Arrays 是否有一种方法可以使用while循环将文件中的元素扫描到数组中?

Arrays 是否有一种方法可以使用while循环将文件中的元素扫描到数组中?,arrays,c,Arrays,C,我试图让void getMessage()从msgfile.txt读取消息,一次读取一个元素。msgfile.txt有26个整数位。我使用while循环以类似于'void getCode()'的方式读取每个整数(总共26个),除了使用while循环而不是for循环,但我使用的方式是while循环跟随for循环。这没有正确执行 以下是msgfile.txt中的输入,除了它不是一行,而是一列: 19546 14501 17309 13027 16149 21512 18035 14014 15700

我试图让void getMessage()从msgfile.txt读取消息,一次读取一个元素。msgfile.txt有26个整数位。我使用while循环以类似于'void getCode()'的方式读取每个整数(总共26个),除了使用while循环而不是for循环,但我使用的方式是while循环跟随for循环。这没有正确执行

以下是msgfile.txt中的输入,除了它不是一行,而是一列:

19546 14501 17309 13027 16149 21512 18035 14014 15700 12515 16514 18207 13407 14837 16842 21037 15333 13244 21224 16321 14146 16014 20727 12804 18811 13711

预期输出是一个数组“numbers[26]”,其中包含msgfile.txt的元素:

编号[0]:19546编号[1]:14501等

#包括
#定义LISTNUM 26
void getCode();
void getMessage(int n,int number[LISTNUM]);
//无效sortMessage();
//void decode message();
内部主(空){
int n,i;
整数[LISTNUM];
文件*fp;
fp=fopen(“msgfile.txt”,“r”);
如果(fp==NULL)
{
printf(“无法打开msgfile.txt\n”);
返回1;
}
而(!feof(fp))
{
fscanf(fp、%d\n、&n);
printf(“%d\n”,n);
}
getCode();
getMessage(n,数字);
//sortMessage();
//解码消息();
}
void getMessage(int n,int number[LISTNUM])
{
fopen_s(fopen,“msgfile.txt”,“r”);
而(!feof(fopen))
{
for(int i=0;i对于
scanf(fopen,“%d”中的(int i=0;i
&numbers[LISTNUM]
,&numbers[LISTNUM])
看起来可疑。将其替换为
&numbers[i]

“执行不正确”不是一个清晰的问题描述。给出准确的输入、预期结果和实际结果。您现在已经给出了输入和预期结果。但是您仍然没有给出程序的实际结果(即,什么是错误行为)。请澄清已发布的答案是否不能为您解决问题。另请参阅:您似乎在一次又一次地打开它。您打算如何处理
feof(fopen)
#include <stdio.h>
# define LISTNUM 26

void getCode();
void getMessage(int n, int numbers[LISTNUM]);
//void sortMessage();
//void decodeMessage();

int main( void ) {
    
    
    int n,i;
    int numbers[LISTNUM];
    
    
    FILE *fp;
    fp = fopen( "msgfile.txt", "r" );
    if( fp == NULL )
    {
        printf( "could not open msgfile.txt\n" );
        return 1;
    }

    while( !feof( fp ) )
    {
        fscanf( fp, "%d\n", &n );
        printf( "%d\n", n );
    }
    
    
        getCode();
        getMessage(n,numbers);
        //sortMessage();
        //decodeMessage();
}
        
    
    
    
    
void getMessage(int n, int numbers[LISTNUM])
{
    
    fopen_s(fopen, "msgfile.txt","r");
    
    while(!feof(fopen))
    {
        for(int i = 0; i < LISTNUM; i++)
        {
            scanf(fopen,"%d", &numbers[LISTNUM]);
        }
    }
}

void getCode()
    {
        FILE *filepointer2;
        
        char character[52];
        
        /*step 2: open codefile.txt and read from it*/
        
        filepointer2 = fopen("codefile.txt", "r");
        
        if (filepointer2 == NULL)/*if file does not open*/
        
        {
        
        printf("Can't open file for reading.\n");
        
        }
        
        else
        
        {
        
        /*if file opens read the characters into the array*/
        
        for(int i=0;i<52;i++){
        
        fscanf(filepointer2, "%c", &character[i]);
        
        }
    }