Arrays 是否有一种方法可以使用while循环将文件中的元素扫描到数组中?
我试图让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等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
#包括
#定义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]);
}
}