此类函数 CLASS::READWRITE 应该从输入文件读取数据并仅当其输入值是 int 类型时才写入输出文件。当我输入一个浮点值作为 x 传递时,小数位被截断并且函数正常执行而不是输出警告。如果像“b”这样的小写字母作为 x 传递,则该值显然被读取为“0”,因此函数正常执行而不是输出警告。
如何执行检查(x!= int)?我已经看到了使用 cin.fail() 的建议,但我在这里没有使用 cin。
#include <iostream>
#include <fstream>
using namespace std;
ifstream input_file("in_file", ios::in);
ofstream output_file("out_file", ios::out);
int main(void)
{
CLASS object(n); // n is the number of values held in in_file
object.READWRITE(x); // x is some test value
}
void CLASS::READWRITE(int x)
{
int i;
for(i = 0; i < n; i++)
{
input_file >> number[i];
}
for(i = 0; i < n; i++)
{
if((x != int) || (x < 0))
{
out_file << "Error" << endl;
break;
}
else
{
out_file << num[i] << endl;
}
}
}