Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.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++_C - Fatal编程技术网

C++ 文件输入错误

C++ 文件输入错误,c++,c,C++,C,我试图在我的代码中输入一个文件,其中包含一个带有新行的整数列表 我使用以下代码输入文件中的内容 int main() { FILE* f = fopen("Integers.txt", "r"); int n = 0, i = 0; int numbers[5]; // assuming there are only 5 numbers in array input while( fscanf(f, "%d\n", &n) > 0 ) // parse %d followed b

我试图在我的代码中输入一个文件,其中包含一个带有新行的整数列表 我使用以下代码输入文件中的内容

int main()
{
FILE* f = fopen("Integers.txt", "r");
int n = 0, i = 0;
int numbers[5]; // assuming there are only 5 numbers in array input

while( fscanf(f, "%d\n", &n) > 0 ) // parse %d followed by '\n'
{
    numbers[i++] = n;
}

fclose(f);
}

我遇到了分段错误,请帮助。

您可能应该试试这个,因为数组
数字
只有
5

int main()
{    
int n = 0, i = 0;
int numbers[5]; // assuming there are only 5 numbers in array input

FILE* f = fopen("Integers.txt", "r");

if (f != NULL)
{    
    for (i=0; i<(sizeof(numbers)/sizeof(int)); i++)
    {
        if (fscanf(f, "%d\n", &n) > 0)
            numbers[i] = n;
        else
            break;
    }
    fclose(f);
}
}
intmain()
{    
int n=0,i=0;
整数[5];//假设数组输入中只有5个数字
文件*f=fopen(“Integers.txt”,“r”);
如果(f!=NULL)
{    
对于(i=0;i=0)
数字[i]=n;
其他的
打破
}
fclose(f);
}
}
数组
numbers[5]
在堆栈中,超出边界访问它将损坏堆栈。

尝试此操作

main()
{
 FILE* f = fopen("Integers.txt", "r");
 int n,i;
 int numbers[5]; // assuming there are only 5 numbers in array input

 for (i=0; i<5; i++)
 {
 fscanf(f, "%d", &n)
 numbers[i] = n;
 }

fclose(f);
}
main()
{
文件*f=fopen(“Integers.txt”,“r”);
int n,i;
整数[5];//假设数组输入中只有5个数字

对于(i=0;iIntegers.txt包含五个或更多?它有10000个整数这是链接
numbers[i++]=n;
-->
numbers[i++]=n;如果(i==5)break;
在最终迭代中,如果文件有精确的5个数字,则必须检查
EOF
。否则,根据循环内的控制变量进行迭代。
sizeof(numbers)
-->
sizeof(numbers)/sizeof(*numbers)
falut@user3692108:检查
fopen()
是否返回NULL。