2015-10-29 196 views
1

我那裏有一條線問題從文件中讀取變量

文件「P00321 A 9」

我需要把每一種作爲3個獨立的變量,但似乎他們不正確閱讀我的代碼。

ifstream inFile; 
int hours; 
string accountnum; 
char servicecode; 

... 

inFile.open("inputs.dat"); 
inFile >> accountnum >> servicecode >> hours; 

如果我清點這些accountnum出現空白,servicecode出來作爲一個下劃線的@符號,和小時是一個長期的十進制數。
我在做什麼錯?

+1

是文件中的報價? – Bogatyr

+1

你是否檢查過開放是否成功? –

+0

實現了輸入文件被命名爲「輸入」而不是「輸入」男孩我覺得愚蠢哈哈。無論如何謝謝! –

回答

0

您是否將「inputs.dat」文件保存爲正確的格式(即ANSI)?

0

您是否嘗試使用strtok作爲分隔符的空格? char* strtok(char* str, const char* delim); 調用這三次來獲得三個單獨的變量。

0

它完美

  • 檢查文件路徑
  • 檢查程序雲打開文件
  • 嘗試運行這段代碼並檢查結果

代碼

#include <string> 
#include <fstream> 
#include <iostream> 

int main() 
{ 
    std::ifstream inFile; 
    int hours; 
    std::string accountnum; 
    char servicecode; 

    inFile.open("E:\\input.dat"); 
    if (inFile.is_open()) 
    { 
     inFile >> accountnum >> servicecode >> hours; 
     std::cout << accountnum << std::endl; 
     std::cout << servicecode << std::endl; 
     std::cout << hours << std::endl; 
    } 
    std::cout << "cant open" << std::endl; 
    system("pause"); 
    return 0; 
} 

文件

P00321 A 9