2013-04-21 63 views
0

我试图编写一个程序从控制台读取一个数字,然后从文件中读取任意数量的数字。然后它应该打印出控制台编号出现在从文件读取的列表中的次数。我不知道如何做第二部分任何人都可以帮助我如何计算出现数字的次数。到目前为止,我唯一的代码是第一部分。将文件中的数字与控制台输入进行比较

我对第二部分的想法是这样的:

while(!inputfile.eof){ 
    if(inputfilenumber == consolenumber){ 
     counter = counter + 1; 
    } 

,但我似乎无法付诸实践,这是我不知道它是如何工作的。

+0

由于该循环中关于'inputfile'的状态或位置没有任何变化,所以我不认为这件事很快就会结束。其次,几乎在所有情况下都应避免使用'istream :: eof()',这也不例外。它不像你认为的那样行事。使用'while(inputfile >> inputfilenumber){if(...)}' – WhozCraig 2013-04-21 14:42:04

回答

0

示例代码,您可以使用它作为参考。

int input; 
int count = 0; 
cin>>input; 
ifstream myReadFile; 
myReadFile.open("text.txt"); 
char output[100]; 
if (myReadFile.is_open()) 
{ 
    while (!myReadFile.eof()) 
    {   
    myReadFile >> output; 
    int val = atoi(output); 
    if(val == input) 
     { 
      cout<<"found input"<<input; 
      count++; 
     } 

    } 
} 
cout<<"count ="<<count; 
myReadFile.close(); 
相关问题