gpt4 book ai didi

c++ - 在文本文件中逐行向前移动 (c++)

转载 作者:行者123 更新时间:2023-11-30 03:43:28 25 4
gpt4 key购买 nike

我一直在研究一个旨在从文本文件的多行中读取数据的程序。我对第一行没问题,但我不确定如何转到第 2、3 行等。

文件的内容和长度没有设置,但内容可能是这样的:

1.0 1.0 C
1.0 1.0 V
1.0 1.0 S
1.0 1.0 D
1010.0 250.0 C

999

这是我的程序(到目前为止);

#include <fstream>
#include <iostream>
#include <string>
#include <iomanip>
#include <math.h>
using namespace std;

int main()
{
double radius;
double height;
char letter[1];

char Exercise4[80] = "Exercise4.txt";
ifstream infile;
infile.open (Exercise4);
infile >> radius >> height >> letter;

while (radius != 999) {

cout << endl << endl;
double Pi;
Pi = 3.141592;
cout << setprecision(2) << fixed;

//math & calculations
double Circ;
Circ = radius*2*Pi;
double Surf;
Surf = (2*Pi*radius*radius)+(2*Pi*radius*height);
double Vol;
Vol = Pi*radius*radius*height;

if (strcmp(letter, "C") == 0) {
cout << "Circumfrence: " << Circ << endl;
}
else if (strcmp(letter, "S") == 0) {
cout << "Surface Area: " << Surf << endl;
}
else if (strcmp(letter, "V") == 0) {
cout << "Volume: " << Vol << endl;
}
else {
cout << "Invalid calculation type." << endl;
}

cout << letter;
}
}

任何关于如何向前推进的信息都将不胜感激。

很抱歉,如果这个问题已经发布(看起来应该已经发布),但我还没有看到它发布在任何地方。

我是 C++ 的新手,所以如果你太技术化,我可能无法理解你所说的一切。

最佳答案

我建议这样做:

...
infile.open (Exercise4);

while((infile >> radius) && radius!=999 && (infile >> height >> letter)) {
...
}

这将在遇到半径 999 或到达文件末尾时停止读取,无论先发生什么。

关于c++ - 在文本文件中逐行向前移动 (c++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36072074/

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