2016-10-01 14 views
-3

私はelect12.csv elect12.csv sample in Excelという名前のファイルを読み込み、最後の列(state)の値を取得し、それをユーザーが入力した変数(stateCode)と比較しようとしています。しかし、私は私のプログラムを実行するたびに、私は値を再入力するようにユーザーを促すことができません。これをどうやって動かすことができますか?ありがとう。使用したい値表の外の値を使用すると、ユーザーに再入力を促すにはどうすればよいですか?

//普及した投票ファイルを読む ifstream pVotesFile( "elect12.csv");

for (int i = 0; i < statecount; i++) 
{ 

    if(pVotesFile.is_open()) 
    { 
     cout << "Enter state code: "; 
     cin >> stateCode; 
     while (pVotesFile >> obama >> romney >> other >> total >> state) 
     { 
      if (stateCode == state) 
      { 
       statePoints = ((double)(obama - romney)/total) * 100; 
       stateTotal += statePoints; 
      } 
      else 
      { 
       cout << "Enter state code: "; 
       cin >> stateCode; 
       stateTotal = 0; 
      } 
    } 
} 

絵は将来的にダウンしてしまった場合は、ここではファイルの最初の数行がどのように見えるかです:

"795696 1255925 22717 2074338 AL"

」 122640 164676 13179 300495 AK "

"1025232 1233654 40368 2299254 AZ"

" 394409 647744 27315 10694 68 AR」

"7854285 4839958 344304 13038547 CA"

+0

また、誰かがifstreamでファイルを正しく読んでいるかどうかを確認できますか? (そのようなnoob haha​​のために申し訳ありません) –

+1

ファイルがどのように見えるのかわからないので、あなたが正しく読んでいるかどうかわかりません。本当にCSVの場合は、コンマを解析していません。 – user4581301

+0

質問を編集し、そのファイルのサンプルを追加してください。サイト外でのホスティングは悪い考えです。まず、質問に関連するすべての情報を質問に含める必要があります。そのリンクが古くなるとすぐに問題は無用になります。第二に、これはインターネットです。いくつかのランダムなサイトからいくつかのランダムなファイルをダウンロードすることは愚かではありません。 – user4581301

答えて

1
"795696 

あなたは、ファイル内の余分なquoatationマークを持っています。その結果、cin >> integer_value;はテキストに遭遇するので失敗します。あなたが実際に何かを読んでいることを確認するよう

795696 1255925 22717 2074338 AL 
122640 164676 13179 300495 AK 
1025232 1233654 40368 2299254 AZ 
394409 647744 27315 1069468 AR 
7854285 4839958 344304 13038547 CA 

のようなデータの使用coutを変更する必要があります。

また
if (pVotesFile.is_open()) 
{ 
    cout << "Enter state code: "; 
    cin >> stateCode; 
    while (pVotesFile >> obama >> romney >> other >> total >> state) 
    { 
     cout << obama << ", " << romney << ", " << other << ", " << total << ", " 
        << state << "\n"; 
     if (stateCode == state) 
     { 
      cout << "state found\n"; 
     } 
    } 
} 

、あるとしてデータを保持し、その後、最初の"引用をスキップマーク。

関連する問題