在我的程序中,我应该逐行读取文本文件并搜索最长的回文并返回其行号。
每个文本文件长 100,000 行,最大长度为 15。
使用我的代码,我可以将每一行读入
char lines[100000][15]
除了让我计算出哪一行包含最长回文的空白行。
例如一个文件包含:(0:是第 0 行,1:是第 1 行,等等。)
0: hello
1: bob
2: joe
3:
4: cat
出现:
0: hello
1: bob
2: joe
3: cat
4: (whatever 5: would be)
这是我读取文件的代码:
std::ifstream theFile;
theFile.open(argv[1]);
char lines[100000][15];
for (int i = 0; i < 100000; i++)
{
for (int j = 0; j < 15; j++)
{
lines[i][j] = '\0'; //I do this to initialize each char to null
}
}
while (!theFile.eof())
{
for (int i = 0; i < 100000; i++)
{
theFile >> lines[i];
}
}
我假设问题出在以下行:
theFile >> lines[i];
不复制换行符或其他格式字符,但我不知道如何解决这个问题,所以任何帮助将不胜感激。
我必须使用一个字符数组数组,顺便说一句,因为我使用 MPI 来传递数据,我只能发送字符而不是数组/字符串。