检测文件是否包含整数以外的字符 intmain(intargc,char*argv[]) {/*请忽略额外的声明*/ 文件*fp; 整数[100]; int值; int i=-1; char*addr1; if((fp=fopen(argv[1],“r”)==NULL) { printf(“无法打开”); 返回1; } 而(!feof(fp)&&fscanf(fp,%d,&value)&&+i
我必须从文件中读入整数数组。此外,如果文件包含整数以外的任何其他字符,则应报告错误。我能够完成上面发布的第一部分。请帮我做第二部分。如果文件只包含整数,则将其存储在数组中。PS:这只是某些程序的一部分。稍后我必须处理程序中的整数数组。读取输入后,如果读取字符,则您的检测文件是否包含整数以外的字符 intmain(intargc,char*argv[]) {/*请忽略额外的声明*/ 文件*fp; 整数[100]; int值; int i=-1; char*addr1; if((fp=fopen(argv[1],“r”)==NULL) { printf(“无法打开”); 返回1; } 而(!feof(fp)&&fscanf(fp,%d,&value)&&+i,c,C,我必须从文件中读入整数数组。此外,如果文件包含整数以外的任何其他字符,则应报告错误。我能够完成上面发布的第一部分。请帮我做第二部分。如果文件只包含整数,则将其存储在数组中。PS:这只是某些程序的一部分。稍后我必须处理程序中的整数数组。读取输入后,如果读取字符,则您的fscanf将返回0,这意味着它在EOF之前不会读取。 在while之后但在关闭fp int main(int argc, char *argv[]) {/*Please ignore extra declarations*/
fscanf
将返回0,这意味着它在EOF之前不会读取。
在while
之后但在关闭fp
int main(int argc, char *argv[])
{/*Please ignore extra declarations*/
FILE *fp;
int integers[100];
int value;
int i = -1;
char *addr1;
if ((fp = fopen (argv[1], "r")) == NULL)
{
printf("cant open");
return 1;
}
while (!feof(fp) && fscanf(fp, "%d", &value) && ++i < 100)
integers[i] = value;
fclose (fp);
int k;
k = i;
int arrlen, processes, j, *pint, number;
float p;
arrlen = k;
printf("Size of array is %d\nThe array is:\n", arrlen);
for(i = 0; i < k; i++)
{
printf("%d\t", integers[i]);
}
return 0;
}
读取输入后,
fscanf
如果读取字符,将返回0,这意味着在EOF.
在while
之后但在关闭fp
int main(int argc, char *argv[])
{/*Please ignore extra declarations*/
FILE *fp;
int integers[100];
int value;
int i = -1;
char *addr1;
if ((fp = fopen (argv[1], "r")) == NULL)
{
printf("cant open");
return 1;
}
while (!feof(fp) && fscanf(fp, "%d", &value) && ++i < 100)
integers[i] = value;
fclose (fp);
int k;
k = i;
int arrlen, processes, j, *pint, number;
float p;
arrlen = k;
printf("Size of array is %d\nThe array is:\n", arrlen);
for(i = 0; i < k; i++)
{
printf("%d\t", integers[i]);
}
return 0;
}
关于你的文件是如何组织的,请不要让我们忽略额外的声明。当您创建一个MCVE()以放入SO时,请确保没有额外的声明。最好在标准错误上报告错误(使用
fprintf(stderr,…)
而不是printf(…)
)。当您无法打开文件时,最好报告未打开的文件名,这样用户就不必猜测您引用的是哪个文件。请注意,关于您的文件是如何组织的信息很少。请不要让我们忽略额外的声明。当您创建一个MCVE()以放入SO时,请确保没有额外的声明。最好在标准错误上报告错误(使用fprintf(stderr,…)
而不是printf(…)
)。当你无法打开一个文件时,最好报告没有打开的文件名,这样用户就不必猜测你所指的是哪个文件。请注意。