Я редактирую свой пост с прогрессом, который я сделал до сих пор. Ну, что я хочу сделать сейчас это:Поиск слов в файле с языком C++
- Прочитать текстовый файл с первой строки без asterics (*), он же линии, начиная с номера 1, до конца файла
- Когда «пустое место» вместо «> sa0» (6-й столбец) помещает @ в переменную. И добавьте следующую строку в следующую переменную (aka fsa1)
- Распечатайте это пользователю по строкам.
код у меня до сих пор:
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include <vector>
using namespace std;
int main()
{
string line, netlist;
int address, fout, fin;
string name, type, fsa0, fsa1;
cout << "Wich Netlist you want to use?" << endl;
cin >> netlist;
ifstream file(netlist.c_str());
if (file.is_open())
{
do{
getline(file, line);
} while (line[0] == '*');
file >> address >> name >> type >> fout >> fin >> fsa0;
if (fsa0 != ">sa0") { fsa1 = fsa0; fsa0 = "@"; } else { file >> fsa1; }
cout << address << " " << name << " " << type << " " << fout << " " << fin << " " << fsa0 << " " << fsa1 << endl;
} else { cout << "File not found" << endl; }
file.close();
return 0;
}
проблемы Найдено:
- Не показывая первую строку после последней строки с astherisc.
- Не показывать все линии только второй.
Текстовый файл им пытаются читать:
*c17 iscas example (to test conversion program only)
*---------------------------------------------------
*
*
* total number of lines in the netlist .............. 17
* simplistically reduced equivalent fault set size = 22
* lines from primary input gates ....... 5
* lines from primary output gates ....... 2
* lines from interior gate outputs ...... 4
* lines from ** 3 ** fanout stems ... 6
*
* avg_fanin = 2.00, max_fanin = 2
* avg_fanout = 2.00, max_fanout = 2
*
*
*
*
*
1 1gat inpt 1 0 >sa1
2 2gat inpt 1 0 >sa1
3 3gat inpt 2 0 >sa0 >sa1
8 8fan from 3gat >sa1
9 9fan from 3gat >sa1
6 6gat inpt 1 0 >sa1
7 7gat inpt 1 0 >sa1
10 10gat nand 1 2 >sa1
1 8
11 11gat nand 2 2 >sa0 >sa1
9 6
14 14fan from 11gat >sa1
15 15fan from 11gat >sa1
16 16gat nand 2 2 >sa0 >sa1
2 14
20 20fan from 16gat >sa1
21 21fan from 16gat >sa1
19 19gat nand 1 2 >sa1
15 7
22 22gat nand 0 2 >sa0 >sa1
10 20
23 23gat nand 0 2 >sa0 >sa1
21 19
И еще одна вещь, вы, ребята, дайте мне несколько советов о том, что делать с этими линиями только с двумя целыми числами, как последний?
Спасибо всем. Я ценю всю помощь.
'||' не работает так, как вы думаете, поэтому 'string gatesearch =" и "|| "или" || "nand" || "или" || «не» || «xor»; 'и' if (netlist == c17 || c432 || c499 || c880 || c1355 || c1908 || c2670 || c3540 || c5315 || c6288 || c75582) 'неверны. – drescherjm
*** string INPUT []; // Я не уверен, размер *** Используйте вектор или, возможно, список. – drescherjm
*** string gatesearch = "and" || "или" || "nand" || "или" || «не» || «xor»; *** Вместо этого я использовал бы перечисление, если строки для этого. – drescherjm