在文本文件 (c++) 中逐行向前移动
Moving forward line by line in a text file (c++)
我一直在开发一个程序,旨在从文本文件的几行读取数据。我对第一行没有问题,但我不确定如何移动到第 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 或到达文件末尾时,这将停止读取,无论先发生什么。
类似的东西
while(infile >> radius >> height >> letter) {
// process, radius height and letter
}
应该把你扭曲到你想去的地方。
输入行
999
将停止该循环。
我建议你使用getline;
std::ifstream fin("myFile.txt");
for (std::string line; std::getline(fin, line); )
{
std::cout << line << std::endl;
}
这正是您要求的,但不适合您的示例程序。因为在这种情况下,您需要解析每一行以获取变量。但是,如果你想学习如何做这些事情,我建议你学习getline。
相关文章:
- 如何在c++中从文本文件中逐行读取整数
- 打印逐行存储的文本文件
- 如何逐行读取文件,每行中的内容都用空格分隔并将其写入新文件中
- C++如何将字符串逐行转换为双精度
- 在 c++ 中逐行阅读字符串,不要以空格停止
- 使用 QT 逐行读取 JSON
- 逐行读取文件,并将数据插入变量和数组中
- 逐行从文本文件中读取 |C++
- 我遇到使用 c++ 逐行读取输入文件的问题
- 无法逐行读取.csv文件
- 在 c++ 中逐行读取文件(将代码从 Python 转换为 C++)
- 如何逐行从文件中获取单词,并在C++中用分号分隔?
- C ++ txt 文件成数组逐行字符串和 int 用于纸牌游戏
- 如何将文件逐行读取到矢量中,然后打印矢量
- C++逐行读取文件
- 如何逐行读取文件并分隔行组件?
- C++ 逐行从文件(包含空格)读取数据
- 对包含整数的文本文件进行排序时,必须逐行进行排序
- C++ 循环逐行写入文件还是添加到数组并在循环后写入文件?
- 在文本文件 (c++) 中逐行向前移动