gpt4 book ai didi

c++ - 检查输入的数字,如果找不到数字则默认为一个值

转载 作者:行者123 更新时间:2023-11-28 02:18:23 27 4
gpt4 key购买 nike

我试图在我的程序中插入一条语句来检查文本文件中的值是否为数值。如果值是一个字符(字符串),那么它使变量等于 0。基本上我希望我的代码使所有不是数字的值默认为 0。

#include <iostream>
#include <fstream>
#include <string>
#include <cmath>
#include <math.h>
#include <iomanip>
#include <sstream>
#define M_PI 3.14159265358979323846 //pi
using namespace std;

int main()
{
double RecWidth, RecHeight, CirRadius, sumRadius, sumCircArea,sumCircumference,sumWidth, sumHeight, sumRecArea, sumPerimeter;
int Age, Savings, sumAge, sumPeople,sumSavings;
string FirstName, LastName;

sumWidth = 0;
sumHeight = 0;
sumRecArea = 0;
sumPerimeter = 0;
sumRadius = 0;
sumCircArea = 0;
sumCircumference = 0;
sumAge = 0;
sumPeople = 0;
sumSavings = 0;

ifstream FileInput;
ofstream FileOutput;

FileOutput << fixed << showpoint << setprecision(2);

FileInput.open("inData_Normal.txt");
FileOutput.open("outputFile.txt");

if (!FileInput.is_open())
{
return 1;
}

while (FileInput >> RecHeight >> RecWidth >> CirRadius >> FirstName >> LastName >> Age >> Savings)
{
sumHeight = sumHeight + RecHeight;
sumWidth = sumWidth + RecWidth;
sumRecArea = sumRecArea + (RecHeight * RecWidth);
sumPerimeter = sumPerimeter + (2 * (RecHeight + RecWidth));
sumRadius = sumRadius + CirRadius;
sumCircArea = sumCircArea + (M_PI * CirRadius * CirRadius);
sumCircumference = sumCircumference + (2 * M_PI * CirRadius);
sumAge = sumAge + Age;
sumSavings = sumSavings + Savings;
sumPeople = sumPeople + 1;
}

FileOutput << "Rectangle:" << "\n";
FileOutput << "The total Lengths = " << sumHeight << ", width = " << sumWidth <<", area = "<< sumRecArea << "," << "\n";
FileOutput << "Perimeter = " << sumPerimeter << "\n" << "\n";
FileOutput << "Circle:" << "\n";
FileOutput << "The total Radius = "<< sumRadius << ", area = "<< sumCircArea <<", circumference = "<< sumCircumference << "\n"<< "\n";
FileOutput << "Person:"<< "\n";
FileOutput << "Total number of persons = " << sumPeople << "\n";
FileOutput << "Total Age = "<< sumAge <<"\n";
FileOutput << "The Total savings = "<< sumSavings;

FileInput.close();
FileOutput.close();
return 0;
}

最佳答案

定义你的 RecHeight , RecWidth , ... 作为 std::string .然后,在你的 while循环你必须插入:

sumHeight = sumHeight + std::atof(RecHeight.c_str());
sumWidth = sumWidth + std::atof(RecWidth.c_str());

等等。 std::atof<cstdlib>图书馆。如果字符串的内容不可转换为 double .否则它返回相应的值作为 double .

关于c++ - 检查输入的数字,如果找不到数字则默认为一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33334888/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com