Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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_Arrays_File_Io - Fatal编程技术网

如何从输入文件中提取信息并将其放入C中的数组中?

如何从输入文件中提取信息并将其放入C中的数组中?,c,arrays,file,io,C,Arrays,File,Io,我有一个input.txt文件: 第一行:m在下面的m行中,我有两对数字a和n 我必须计算^n,结果最多可以有10^8位数字。我使用数组编写程序,并给a和n赋值。它返回了正确的答案。但我要做的是从文件中读取信息,计算a^n并将数字写入output.txt文件 例如: 在input.txt中,我在第一行 2 2 10 1 100000 output.txt 1024 1 正如我所说,这个程序可以处理我在主程序中写的任何数字。现在,我需要帮助从input.txt中提取数字,将它们放入数组中,

我有一个input.txt文件:

  • 第一行:
    m
    在下面的
    m
    行中,我有两对数字
    a
    n
我必须计算^n,结果最多可以有10^8位数字。我使用数组编写程序,并给
a
n
赋值。它返回了正确的答案。但我要做的是从文件中读取信息,计算a^n并将数字写入output.txt文件

例如:

在input.txt中,我在第一行

2
2 10
1 100000
output.txt

1024
1
正如我所说,这个程序可以处理我在主程序中写的任何数字。现在,我需要帮助从input.txt中提取数字,将它们放入数组中,然后在计算后返回到output.txt中


从codepad.org复制的非编译代码
#包括
#包括
常量整数最大位数=10000;
void longNumClone(字符*从,字符*到)
{
int i;
对于(i=0;i=0;i--){
printf(“%i”,num[i]);
}
}
int longNumDiv2(char*rez,char*num,int sizeNum){
int i;
num[sizeNum]=0;
rez[sizeNum]=0;
对于(i=sizeNum-1;i>=0;i--){
rez[i]=((num[i+1]-rez[i+1]*2)*10+num[i])/2;
}
if(rez[sizeNum-1]==0){
返回sizeNum-1;
}
返回sizeNum;
}
整数乘法(char*rez,char*a,int-sizeA,char*b,int-sizeB){
int-sizeRez=0,i;
对于(i=0;isizeRez){
sizeRez=i+j+inc+1;
}
温度=温度/10;
inc++;
}而(温度!=0);
}
}
返回尺寸;
}
int superpow(char*rez、char*base、int-sizeBase、char*exp、int-sizeExp){
int i;
字符温度[最大位数];
字符temp1[MAX_n r_DIGITS];
字符temp2[MAX_n r_DIGITS];
对于(i=0;i0){
if(exp[0]&1){
朗努姆克隆(rez,临时);
sizeRez=乘法(rez、temp、sizeRez、base、sizeBase);
}
朗努姆克隆(实验,温度);
sizeExp=longNumDiv2(exp,temp,sizeExp);
朗努姆克隆(基部,temp1);
朗努姆克隆(基部,temp2);
sizeBase=乘法(基、temp1、sizeBase、temp2、sizeBase);
}
返回尺寸;
}
int main(){
// 4437053125^625
字符a[MAX_NR_DIGITS]={5,2,1,3,5,0,7,3,4,4};
int-sizeA=10;
charn[MAX_NR_DIGITS]={5,2,6};
int-sizeN=3;
char rez[最大位数];
int-sizeRez=0;
sizeRez=超级功率(rez,a,sizeA,n,sizeN);
longNumPrint(rez,sizeRez);
返回0;
}
main()
中的数组被视为可变长度数组(VLA),因为
MAX\u NR\u DIGITS
不被视为整数常量表达式,并且不能初始化VLA。在C++中是可以的,但在C.</P> < P>中,不要考虑从文件中读取某个格式,也可以将某个格式写入文件。 例如,一些初始化的
文件*读取文件
文件*写入文件
可以

int count, int a, n;
fscanf(read_file, "%d ", &count);

for (i = 0; i < count; i++) {
    fscanf(read_file, "%d %d ", &a, &n);
    ... 
    /* calculate the output result */
    ...
    fprintf(write_file, "%d\n", result);
}
int计数,int a,n;
fscanf(读取文件“%d”和计数(&U);
对于(i=0;i
代码在哪里?任务的哪些部分遇到问题?文件I/O?动态内存分配?我们不是来做你的事的homework@ZachP:请先阅读:他需要帮助“提取数字,将其放入数组并[…]计算以将其输出到output.txt”代码,我们将提供帮助。只有无数重复项中的一项:
int count, int a, n;
fscanf(read_file, "%d ", &count);

for (i = 0; i < count; i++) {
    fscanf(read_file, "%d %d ", &a, &n);
    ... 
    /* calculate the output result */
    ...
    fprintf(write_file, "%d\n", result);
}