非常基本,尝试从带有数字的文本文件中读取并将它们存储在数组中
Very basic, trying to read from a text file with numbers and store them in an array
当我 运行 程序时,当文本文件中的数字为 20 时,我得到的数字完全荒谬,例如 -39389014。这是我的文本文件的样子:
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);
}
确保您的 "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);
}
当我 运行 程序时,当文本文件中的数字为 20 时,我得到的数字完全荒谬,例如 -39389014。这是我的文本文件的样子:
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);
}
确保您的 "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);
}