#include<iostream>
#include<fstream>
#include<cstring>
using namespace std;
int main()
{
cout << "Hello.";
ifstream attack,output;
attack.open("CattackList");
output.open("finaltestOutput.txt");
if (!attack)
cout << "file1 not opened.\n";
if (!output)
cout << "file2 not opened.\n";
char buf1[100],buf2[100];
attack.getline(buf1,100);
int count = 0, C=0;
cout << "hello";
while (!attack.eof())
{
C++;
cout << "ok";
output.open("finaltestOutput");
while (!output.eof())
{
output.getline(buf2, 80);
if (strncmp(buf1, buf2, 51) == 0)
{
cout << buf2 << endl;
count++;
}
}
attack.getline(buf1, 80);
}
cout << "\nTotal Attacks : " << C << endl;
cout << "Attacks detected: " << count << endl;
return 0;
}
我无法获得第一个“Hello”来打印......
答案 0 :(得分:1)
此代码有问题吗?
首先排除这些问题,然后再问。
答案 1 :(得分:1)
让我们看看......
#include<iostream>
#include<fstream>
#include<cstring>
请在每个#include
后添加一个空格。
if (!attack)
cout << "file1 not opened.\n";
if (!output)
cout << "file2 not opened.\n";
错误消息应转至cerr
,而不是cout
。
char buf1[100],buf2[100];
attack.getline(buf1,100);
你是否在字符串末尾允许空格?此外,每个逗号后面还有一个空格。
int count = 0, C=0;
=
等二元运算符周围的空格。此外,不鼓励使用单字母变量名称。
output.open("finaltestOutput");
您已打开此文件。你为什么要再打开它?此外,还指出了命名输入文件流output
。
output.getline(buf2, 80);
if (strncmp(buf1, buf2, 51) == 0)
您在哪里获得了数字80
和51
?
可能还有更多;从那开始。
答案 2 :(得分:0)
在您的代码中,您在两个部分给出文件名扩展名的代码是attack.open("CattackList");
而另一个是output.open("finaltestOutput");
。可能是这导致文件无法打开并获得意外结果。