[英]fscanf with 2 files and multiple lines
我试图用2个文本文件构建一个电路模拟器,其中一个包含电路说明,另一个包含值。
防爆电路:
INPUTVAR 3 A B C
OUTPUTVAR 1 Q
AND A B w
AND A C x
OR w x Q
这样就创建了电路:w = AB; x = AC; 和Q = w + x; Inputvar具有其后跟一个int的格式,然后对应于变量名称的许多字符,与Outputvar相同。
输入:
1 0 1
0 0 1
我试图读取输入的第一行,然后读取电路文件的前2行,以在索引处使用这些对应值填充数组。
FILE *circuit, *input;
input = fopen(argv[2],"r");
int upper[26],output[26]; //upper is array of all upper letters, output is same.
char str1[10],str2[10];
int i,numin,numout;
while(!feof(input)
{
circuit = fopen(argv[1],"r");
fscanf(circuit("%s %d ", str1, &numin);
//this works correctly and gets INPUTVAR then 3.
for(i = 0; i <numin; i++)
fscanf(input,"%d ",&upper[i]);
fscanf(circuit,"%s %d ",str2,&numout);
//does not work correctly
}
在使用输入变量填充数组之后,我尝试获取多少输出及其名称,然后使用临时编号填充该对应的数组(输出)以供以后使用。 我使用fscanf是因为每种“电路块”的类型都有指定的格式。
我如何才能同时读取circuit.txt中的第二行? 完成该操作后,我必须阅读其余各行以“创建”电路。
fscanf(circuit("%s %d ", str1, &numin);
读取此行的INPUTVAR和3:INPUTVAR 3 ABC。但是,下一次读取将得到ABC。您需要阅读这些项目以跳过他们并到达下一行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.