2014-01-23 21 views
0

我有一個包含字符串和整數的文件。例如,這是我的文件如何用C++編寫的文件中的數據類型的計數

string int int string int int 

如何獲得文件中只有字符串的計數?我想在文件的開頭寫上count。但是在閱讀時伯爵不適當。

+0

你到目前爲止累了什麼?請放在這裏 –

回答

0

如果它是一個文本文件,你可以方便地讀取該文件的「話」,然後確定它們是否使用atoiatolatollatoq數字或沒有。當你得到一個答案(即:這是一個數字,或不),只是增加一個變量:)

+0

'atoi'等將不會告訴你他們是否是數字。 –

0
std::string word; 
while (std::cin >> word) 
{ 
    std::istringstream iss(word); 
    int my_int; 
    char garbage; 
    num_ints += (iss >> my_int) && !(iss >> garbage); 
    ++num_words; 
} 
num_strings = num_words - num_ints; 
+0

'iss >>垃圾'的作用是什麼?如果'iss >> my_int'成功,則不會被評估,如果'iss >> my_int'失敗,則'iss'處於失敗狀態,並且所有其他輸入都將失敗。 –

+0

@JamesKanze - 好點 - 固定。乾杯 –

0

解析通過每個項目。對於每個項目,比較其中的字符的ascii值。如果它在48和57之間(包含),它是一個int。否則它是一個字符串。

+1

'-1'不是'int'? (誰說這些字符是ASCII的,使用'isdigit'會更好一些。) –