C 非常基本,尝试读取带有数字的文本文件并将其存储在数组中
当我运行这个程序时,我得到的数字是完全荒谬的,比如-39389014,而文本文件中的数字是20。以下是我的文本文件的外观:C 非常基本,尝试读取带有数字的文本文件并将其存储在数组中,c,arrays,readfile,C,Arrays,Readfile,当我运行这个程序时,我得到的数字是完全荒谬的,比如-39389014,而文本文件中的数字是20。以下是我的文本文件的外观: 20 20 40 30 80 40 90 20 60 10 18.0 以及守则: #include <stdio.h> #define SIZE 5 int main(void){ FILE *in = fopen("pfile1.txt", "r"); int x[5], y[5], i; double h; for (i
20 20
40 30
80 40
90 20
60 10
18.0
以及守则:
#include <stdio.h>
#define SIZE 5
int main(void){
FILE *in = fopen("pfile1.txt", "r");
int x[5], y[5], i;
double h;
for (i=0;i<SIZE;++i){
fscanf(in, "%d %d", &x[i], &y[i]);
}
for (i=0;i<SIZE;++i){
printf("%4d %10d\n", x[i], y[i]);
}
fscanf(in, "%lf", &h);
printf("%lf\n", h);
fclose(in);
return(0);
}
#包括
#定义尺寸5
内部主(空){
文件*in=fopen(“pfile1.txt”,“r”);
int x[5],y[5],i;
双h;
对于(i=0;i确保“pfile1.txt”文件放在项目设置旁边。
若要确定文件的位置,请将“打开”权限更改为“w+”。此选项将尝试打开该文件,如果找不到该文件,则会创建该文件。请将该文件替换为您的文件。
一切都会顺利进行:)
只需在飞行中提示:
不要对任何指针进行任何操作,除非确保它不为NULL。
因此,请在代码周围使用
if( NULL != in)
{
for (i=0;i<SIZE;++i){
fscanf(in, "%d %d", &x[i], &y[i]);
}
for (i=0;i<SIZE;++i){
printf("%4d %10d\n", x[i], y[i]);
}
fscanf(in, "%lf", &h);
printf("%lf\n", h);
fclose(in);
}
if(NULL!=in)
{
对于(i=0;i您使用的是IDE吗?可能是您没有给它文件的路径。类似于。函数从fopen
和fscanf
返回值是什么?除此之外:int x[5],y[5]
-->int x[SIZE],y[SIZE]
-2 6356704 1961194346 1945845610 1961194589 6356940 4199232 1961218544 6356792 1945843218按Enter键返回昆西…无即时消息未使用IDEIve将文件放在与我的项目相同的文件夹中,并将fopen的权限更改为“w+”但它仍然不起作用。如果您不确定将文件放在哪里,我的意思是。删除所有相关文件,然后使用“w+”。它将创建一个文件。然后用您的文件替换该文件,然后重试,但不要忘了在之前再次将权限返回到“r”,以避免清理您的数据。哦,我明白,让我试试