我试图创建一个可以自动解决单词搜索难题的程序。
我在存储输入的单词搜索拼图时遇到了一些麻烦。提供的示例单词搜索文本文件包含由两个空格分隔的字母。每个填充行之间有一个空行。
这是我现在的代码。它似乎只存储和输出拼图的最左侧列。我做错了什么?有没有更简洁的方法呢?
vector< vector <string> > puzzle;
ifstream myPuzzle ("puzzle.txt");
if (myPuzzle.is_open())
{
while (myPuzzle)
{
string temp;
if (!getline(myPuzzle, temp))
break;
istringstream ss(temp);
vector <string> record;
while (ss)
{
string temp2;
if (!getline(ss, temp2, ' '))
break;
record.push_back(temp2);
}
puzzle.push_back(record);
}
}
else
cout << "Failed to open puzzle file!" << endl;
cout << "Puzzle succesfully inputted" << endl;
for (vector< vector<string> >::size_type i = 0; i < puzzle.size(); ++i)
{
for (vector<string>::size_type it = 0; it < puzzle[i].size(); i++)
cout << puzzle[i][it];
cout << endl;
}
字符矩阵示例(puzzle.txt):
U T Y Y A L P S G I B S K I P Q H S K T
A T L T I R U N E Z I M O D N A R S F P
D J I P R H H V E U E W U K F D L T A V
R T N Q N O E Y U O L H D S P Q C A F H
A A E U O O S A J F B O I Z S C C C V L
T T A I D P I B P L B L C E T H P K T I
I I R C U P Q S A W U B T Y N P E R T Y
C S T K U M S C R O B I I K N I L L H R
D E N B N A K I R U O N O H L I Q Y L A
F L A M I Z M M E S C S N S B B H O H N
U E T W O F O H D E M E A G E T E S X I
R C S X N I V T A I E R R Z Y G K V M B
C T N F I V C I G O R T Y X E H X G W D
D I O T W D Y R O I G I Z L V L P V Q N
J O C S E W L A U R E O U Q W O S A T I
I N O I U M F G B D L N C C Y O N M R F
L K P L E D U O I A M O R T I Z E J B G
M S Y Y U R V L Q D F P T E E R T K C W
答案 0 :(得分:2)
你在两个for循环中使用i ++。第二个应该使用++。