如何形成一个数字数组,从C中的文件中获取输入

如何形成一个数字数组,从C中的文件中获取输入,c,C,该程序应该能够从如下文本文件中生成一个数字数组 数据如下所示 123 2132 1100909 3213 89890 我的代码是 char a; char d[100]; char array[100]; a=fgetc(fp) // where fp is a file pointer if (a=='') { d[count1]='/0'; strcpy(&array[count],d); count=count+1; memset(d,'\0',100) count1=0; }

该程序应该能够从如下文本文件中生成一个数字数组 数据如下所示 123 2132 1100909 3213 89890

我的代码是

char a;
char d[100];
char array[100];
a=fgetc(fp) // where fp is a file pointer 

if (a=='')
{
d[count1]='/0';
strcpy(&array[count],d);
count=count+1;
memset(d,'\0',100)
count1=0;
}

else 
{
d[count1]=a;
count1=count1+1;
}
a=fgetc(fp);

我现在有毛病了。希望把每个数字存储在数组中,这样我就可以对它进行排序:

嗯……作为第一个近似值,读取一个数字,考虑使用<代码> fSCANF(“%d”,和数字);<代码>。要存储读取的数字,您可能需要创建一个数字数组(例如,
int numbers[100];
)。要读取多个数字,请使用循环将数字读入数组


旁注:
fscanf
并不能特别原谅输入中的错误(尤其是其他错误),因此对于生产代码,您可能需要读取字符串,并从中解析数字,但目前看来,您可能只需要获得适用于正确输入的内容,不必担心如何正确处理错误输入。

嗯……作为第一个近似值,读取一个数字时,考虑使用<代码> fSCANF(“%d”,和数);<代码>。要存储读取的数字,您可能需要创建一个数字数组(例如,

int numbers[100];
)。要读取多个数字,请使用循环将数字读入数组

旁注:
fscanf
并不能特别原谅输入中的错误(尤其是其他错误),因此对于生产代码,您可能需要读取字符串,并从中解析数字,但目前看来,您可能只需要获得适用于正确输入的内容,不必担心如何优雅地处理不正确的输入。

您的(第一个)问题是:

d[count1]='/0';
strcpy(&array[count],d);
您已经编写了
“/0”
,这不是您所认为的。假设您的意思是
'\0'
(null
char
literal),那么您似乎试图在调用
strcpy()
之前手动终止字符串
d
。问题是实际写入
d
的不是空字节,因此
d
不是以空结尾的,然后
strcpy()
关闭并开始读取它之后的随机内存,并将该内存复制到
数组中,直到读或写结束在允许访问的内存之外,然后出现分段错误

对于
数组
是什么,您也有一些困惑。它被声明为一个100
char
s的数组,但您将其视为一个字符串数组。也许您想将其声明为
char*array[100]

您的(第一个)问题是:

d[count1]='/0';
strcpy(&array[count],d);
您已经编写了
“/0”
,这不是您所认为的。假设您的意思是
'\0'
(null
char
literal),那么您似乎试图在调用
strcpy()
之前手动终止字符串
d
。问题是实际写入
d
的不是空字节,因此
d
不是以空结尾的,然后
strcpy()
关闭并开始读取它之后的随机内存,并将该内存复制到
数组中,直到读或写结束在允许访问的内存之外,然后出现分段错误


对于
数组
是什么,您也有一些困惑。它被声明为一个100
char
s的数组,但您将其视为一个字符串数组。也许您想将其声明为
char*array[100]

代码实际上是这样写的吗

d[count1]='/0'中d[count1]='\0'(Daniel Pryden已经提到)


memset(d,'\0',100)

的末尾也缺少一个分号,这就是代码的编写方式吗

d[count1]='/0'中d[count1]='\0'(Daniel Pryden已经提到)


memset(d,'\0',100)

的末尾还缺少一个分号。请告诉我们更多关于1)您想要的结果和2)您当前得到的结果以及您不喜欢它的原因。问题是?我把它标记为家庭作业。如果没有,我们可以恢复。请告诉我们更多关于1)你想要什么样的结果,2)你目前得到什么样的结果以及为什么你不喜欢它。问题是?我把它标记为家庭作业。如果没有,我们可以恢复。