【发布时间】:2013-04-19 14:27:56
【问题描述】:
我正在制作一个简单的程序,它读取文件和用户的值,然后计算该值在文件中出现的次数。到目前为止,我已经做到了,它编译得很好,但是当你输入一个数字时,那里什么也没有发生。我难住了。对不起,如果这是非常基本的,但我无法超越。
这是我目前所拥有的。
#include <stdlib.h>
#include <iostream>
#include <fstream>
using namespace std;
int hold,searchnumber, counter=0;
int main()
{
cout << "This program reads the contents of a file to discover if a number you enter exists in it, and how many times. \n";
cout << "What number would you like to search for? \n";
cout << "Number : ";
cin >> searchnumber;
ifstream infile("problem2.txt");
if(!infile)
{
cout << "Can't open file problem2.txt";
exit(EXIT_FAILURE);
}
int sum=0,number;
infile >> number;
while (!infile.eof())
{
if (number == searchnumber);
counter = counter += 1;
}
{
cout << "The number " <<searchnumber << " appears in the file " << counter <<" times! \n";
cin >> hold;
}
infile.close();
}
【问题讨论】:
-
其他人已经回答了眼前的问题,但这里有一个更高级别的提示:当您尝试编写一个执行两件事的程序时(例如,从用户那里获取一个数字,然后扫描一个文件),在尝试集成它们之前,您应该分别编写和测试这两个函数。这样一来,当出现问题时,您就会(通常)知道该往哪里看。
-
请记住考虑您的文件是否包含非数字、大数字等。简单形式的更正循环仅适用于包含有效整数的文件。例如它将无法在像这样的文件中找到 2 1 '1 33333333333333333333333333 1'