Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何从文本文件中读取多个数字_C_Arrays_File Io - Fatal编程技术网

C 如何从文本文件中读取多个数字

C 如何从文本文件中读取多个数字,c,arrays,file-io,C,Arrays,File Io,这是我的代码,我不断地遇到分段错误。 如何格式化此代码以从文件中读取一组数字 我的输入是这样的:82、46、71、56、44、12、100、62、67、64、65、62、39、68、90、78、57、76、45、82等等 #include <stdio.h> int main () { FILE *input = fopen("input.txt", "r"); int line[7]; int store = 0, read; if(!inpu

这是我的代码,我不断地遇到分段错误。 如何格式化此代码以从文件中读取一组数字

我的输入是这样的:82、46、71、56、44、12、100、62、67、64、65、62、39、68、90、78、57、76、45、82等等

#include <stdio.h>

int main ()
{
    FILE *input = fopen("input.txt", "r");

    int line[7];
    int store = 0, read;

    if(!input)
    {
        printf("Error: Filename \"input.txt\" not found!\n");
    }

    store = 0;
    while(fscanf(input, "%d", &read) != EOF)
    {            
        line[store] = read;                 
        store++;
    }

    printf("%d %d %d %d %d %d %d\n", line[0], line[1], line[2], line[3], line[4], line[5], line[6]); 
    return(0);
}
#包括
int main()
{
FILE*input=fopen(“input.txt”,“r”);
int行[7];
int store=0,读取;
如果(!输入)
{
printf(“错误:文件名\”input.txt \“未找到!\n”);
}
存储=0;
while(fscanf(输入、%d、&read)!=EOF)
{            
行[存储]=读取;
存储++;
}
printf(“%d%d%d%d%d%d%d%d%d\n”,第[0]行、第[1]行、第[2]行、第[3]行、第[4]行、第[5]行、第[6]行);
返回(0);
}

将while循环条件更改为:

while( store < sizeof(line)/sizeof(int) && fscanf(input, "%d", &read) != EOF)
while(存储

看起来您的输入中有更多的数字,然后您就有了空间。

文件格式是什么?检查
是否将<7
存储在循环中,如果
输入
,则不仅打印错误消息,而且
退出(1)
。如果
fscanf
未能读取
int
而未获得输入错误,则其返回值将为0,因此请检查
fscanf(…)==1
。for循环中似乎没有防止您溢出行[]。如果您的文件中有7个以上的数字怎么办?好的,谢谢!我的输入是这样的:82、46、71、56、44、12、100、62、67、64、65、62、39、68、90、78、57、76、45、82等等。这对我的案例有帮助吗?(还有,如果你知道的话,我怎么读下一行,依此类推?)哦,这里有每行7个整数的行,但我不知道为什么我不能这样显示。逗号在文件中?然后,您的
fscanf
将永远不会使用第一个逗号并返回0,直到程序出现故障,因为
store
是1347或其他什么。这样可以防止我的行[]溢出吗?