我的程序需要解析一個csv文件並確定缺失的數字組合。順序無關緊要。爲什麼我的程序不能正常工作
該程序編譯並運行,但打印出已打印在文件中的一行中的數字。
輸入(mega2.csv):
123
134
142
注234
不在列表中。
預期輸出: 程序應該輸出234
因爲它不是唯一使用的組合。相反,沒有輸出。
代碼:
#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
#include <cstdlib>
#include <ctime>
#include <cmath>
using namespace std;
int main()
{
ifstream inFile;
string value;
string fileName;
int count;
int amount, playCount;
int a,b,c,d,e,f,g,h,i,j,k,l;
srand(time(0));
char ch;
do{
cout << "Enter number of plays (or -number to quit): ";
cin >> amount;
cout << endl;
playCount = 1;
while(playCount <= amount){
do{
inFile.open("mega2.csv");
//create random numbers a,b,c,d,e,f= mega num < 10
a = rand() % 5;
if(a == 0){a = 1;}
do{
b = rand() % 5;
if(b == 0){b = 1;}
}while(b == a);
do{
c = rand() % 5;
if(c == 0){c = 1;}
}while(c == a || c == b);
//Load numbers into g,h,i,j,k,l
do{
inFile >> g;
inFile.get(ch);
inFile >> h;
inFile.get(ch);
inFile >> i;
inFile.get(ch);
int count = 0;
cout << g << "," << h << "," << i << endl;
//A
if(a == g || a == h || a == i){
count++;
}
//B
if(b == g || b == h || b == i){
count++;
}
//C
if(c == g || c == h || c == i){
count++;
}
}// close second half do loop
while(inFile && count < 3);
inFile.close();
inFile.clear();
} // close whole do loop
while(count >= 3);
cout << endl;
cout << endl;
cout << endl;
cout << a << "," << b << "," << c << endl;
cout << endl;
playCount++;
} // End playCount while loop
}// End main do loop
while(amount >= 0); // quit program with negative number
system("pause");
return 0;
}
請修改您的問題以獲得更具描述性的標題並刪除無關的代碼部分。發佈之前,您應該運行您發佈的確切代碼,並確保問題發生在其中。 – 2012-03-10 07:28:11
你的標題看起來太含糊。 – 2012-03-10 07:29:03
「代碼中有一些不必要的東西,它們不影響任何東西,只是忽略它們。」你如何刪除不相關的部分,並提供給我們一個[簡短,自包含,正確(可編譯),例子](http://sscce.org/)?這會讓StackOverflow社區更容易幫助你。另請參見http://tinyurl.com/so-hints – Johnsyweb 2012-03-10 07:37:14