繁体   English   中英

带2个文件和多行的fscanf

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM