错误在我的代码,谁能解释错了
Error in my code, can anyone explain whats wrong?
我是c++的新手,我正在编写一个程序,但在第39行,它说错误'else'没有前面的'if',但我确实有前面的if。有人对我做错了什么有任何意见吗?这是我的程序代码。谢谢。
1 #include <fstream>
2 #include <iostream>
3 #include <cstdlib>
4 using namespace std;
5 int main()
6 {
7 //Declarations
8 ifstream masterFile;
9 ifstream transactionFile;
10 ofstream newMasterFile;
11 double mClientNumber, mtotalClientCost, tClientNumber, titemClientCost;
12 string mClientfName, mClientlName;
13 cout << "Master File Updating Starting" ;
14 masterFile.open("Master.rtf");
15 transactionFile.open("Transaction.rtf");
16 newMasterFile.open("newMaster.rtf");
17 masterFile >> mClientNumber;
18 masterFile >> mClientfName;
19 masterFile >> mClientlName;
20 masterFile >> mtotalClientCost;
21 transactionFile >> tClientNumber;
22 transactionFile >>titemClientCost;
23 while ( transactionFile.eof() )
24 {
25 while (( masterFile.eof()) && (mClientNumber < tClientNumber))
26 {
27 newMasterFile << mClientNumber << endl;
28 newMasterFile << mClientfName << endl;
29 newMasterFile << mClientlName << endl;
30 newMasterFile << mtotalClientCost << endl;
31 masterFile >> mClientNumber;
32 masterFile >> mClientfName;
33 masterFile >> mClientlName;
34 masterFile >> mtotalClientCost;
35 }
36 if (masterFile.eof());
37 {
38 cout << "Error Client ID: " << tClientNumber << " not in Master File." ;
39 else if (mClientNumber == tClientNumber);
40 mtotalClientCost = mtotalClientCost + titemClientCost;
41 newMasterFile << mClientNumber << endl;
42 newMasterFile << mClientfName << endl;
43 newMasterFile << mClientlName << endl;
44 newMasterFile << mtotalClientCost << endl;
45 masterFile >> mClientNumber;
46 masterFile >> mClientfName;
47 masterFile >> mClientlName;
48 masterFile >> mtotalClientCost;
49 else if (mClientNumber > tClientNumber);
50 cout << "Error Client ID: " << tClientNumber << " not in Master File." ;
51 }
52 transactionFile >> tClientNumber;
53 transactionFile >> titemClientCost;
54 }
55 while (masterFile.eof())
56 {
57 newMasterFile << mClientNumber << endl;
58 newMasterFile << mClientfName << endl;
59 newMasterFile << mClientlName << endl;
60 newMasterFile << mtotalClientCost << endl;
61 masterFile >> mClientNumber;
62 masterFile >> mClientfName;
63 masterFile >> mClientlName;
64 masterFile >> mtotalClientCost;
65 }
66 cout << "Master File Updating Complete" ;
67
68 masterFile.close();
69 transactionFile.close();
70 newMasterFile.close();
71
72 system("pause");
73 return 0;
74 }
if (masterFile.eof());
//^^this ; here effectively terminates your if block and
//does not have a closing } before else
类似的问题可以在这里找到:
if (mClientNumber == tClientNumber);
//^^another line below same problem
在所有if语句中,您都添加了不必要的;
。
if (masterFile.eof());{
// ^ this semicolon is not supposed to be there
此;
将终止if语句。
应该这样做:
if (masterFile.eof()){
同样,您没有关闭if语句中的第一个括号。所以最终产品应该是这样的:
if (masterFile.eof()){
//if body
}else if (*next condition*){
//else if body
}
等等…欢呼声
首先在if和else if语句后面加一个分号
如果(masterFile.eof ());
else if (mClientNumber == tClientNumber);
Rempve他们。
If不考虑这个错别字,因为else If前面没有If语句。相反,它被放入if语句
的复合语句中。if (masterFile.eof());
{
cout << "Error Client ID: " << tClientNumber << " not in Master File." ;
else if (mClientNumber == tClientNumber);
也许你的意思是:
if (masterFile.eof());
{
cout << "Error Client ID: " << tClientNumber << " not in Master File." ;
}
else if (mClientNumber == tClientNumber);
或
if (masterFile.eof());
{
cout << "Error Client ID: " << tClientNumber << " not in Master File." ;
if (mClientNumber == tClientNumber);
您在几个地方忘记了{
和}
。将第36-51行改为
36 if (masterFile.eof())
37 {
38 cout << "Error Client ID: " << tClientNumber << " not in Master File." ;
39 } else if (mClientNumber == tClientNumber){
40 mtotalClientCost = mtotalClientCost + titemClientCost;
41 newMasterFile << mClientNumber << endl;
42 newMasterFile << mClientfName << endl;
43 newMasterFile << mClientlName << endl;
44 newMasterFile << mtotalClientCost << endl;
45 masterFile >> mClientNumber;
46 masterFile >> mClientfName;
47 masterFile >> mClientlName;
48 masterFile >> mtotalClientCost;
49 } else if (mClientNumber > tClientNumber){
50 cout << "Error Client ID: " << tClientNumber << " not in Master File." ;
51 }
相关文章:
- #定义c-预处理器常量..我做错了什么
- 努力将整数转换为链表。不知道我在这里做错了什么
- 首要问题的答案让值班员搞错了
- 看起来is_nothrow_constructible_v()在MSVC中被破坏了,我错了吗
- 有人能解释一下为什么下界是这样工作的吗C++的
- 我是c ++的新手,你能解释一下在这种情况下的指针吗
- 谁能告诉我我用 getline 做错了什么 (cpp) 格式
- 不能让类是微不足道的可复制的。我做错了什么?
- 谁能解释一下这个简单逻辑背后的逻辑?我迷路了
- 我的复制构造函数导致使用我的类的方法失败.有人能看一眼,告诉我我做错了什么吗
- 下面的二进制树代码给出了分段错误.有人能解释为什么吗
- cin.get() 有效,但不能使用 cin.getline().我对cin.getline()做错了什么或误解了什么
- 我的链表代码有错误,有人能帮我检查哪里错了吗
- 有人能认出我做错了什么吗
- 我的函数调用出错了,有人能解释一下原因吗
- 谁能帮我弄清楚我在这里做错了什么吗?
- 有人能解释一下这个特殊的打印语句在for循环中做了什么吗
- 我的程序应该摆脱不是数字的字符,但不能完全工作,关于我做错了什么有什么想法吗?
- 错误在我的代码,谁能解释错了
- 宏"parameter"名称网格。能行吗?我做错了什么?