在for循环、读写文件时遇到困难
difficulty with for loops, reading from and writing to files
我目前正在为我的210班做一个项目,该项目涉及一个文件,我需要从中提取全名、航班类型、乘客类型、会员级别、行李数量以及这些行李的大小/重量。它变得非常复杂,有军事奖励和里程俱乐部,免费行李和超大行李,乘客类型等。等…
文件看起来就像这样:
Mark Spitz E RP NO 2 21.5 24.2 18 6 30 26 20.5 7.5
Michael Jordan B RP M4 3 53.7 14.1 9.2 15.0 24.2 5.2 9.3 16.2 109.2 12.1 9.6 23.0
Dorothy Hamill E RP NO 2 55.8 27.1 17.2 18.6 15.0 35.2 21.3 9.2
这表明Mark Spitz是经济舱的常客,而不是里程俱乐部的成员。他正在托运两个行李:第一个重21.5磅。身高24.2英寸。长,18英寸。宽,6英寸。高;第二个重30磅。是26英寸。长,20.5英寸。宽,7.5英寸。高。
我以前使用过for循环从文件中读取,但从来没有像这样。我已经完全停止,需要一些认真的帮助与这个问题,因为我似乎找不到太多的。任何和所有的帮助是非常感激!下面是我当前的代码:
#include <iostream>
#include <string>
#include <fstream>
#include <iomanip>
#include <cmath>
using namespace std;
int main ()
{
int newline, firstname, lastname, flighttype, status, membership, numberofbags=0, regularpass, militarypass, militaryorder, member1, member2, member3, member4, nomember;
ifstream infile;
infile.open("data3.txt");
ofstream outfile;
outfile.open("charges.txt");
infile >> newline;
for(int a=0; a<newline; a++)
{
infile >> firstname >> lastname;
outfile << firstname <<" " << setw(10) << left << lastname;
}
return 0;
}
如前所述,使用了错误的类型。你把字符串读入整型变量,这是行不通的。
for(int a=0; a<newline; a++)
你循环遍历文件的方式没有意义。
ifstream参考
也……在尝试移动到下一个记录之前,您不会读取所有字段。您的数据显示一些记录具有比其他记录更多的字段。那会导致你的技巧不起作用。如果练习是读取相同长度的记录,那么这是正确的代码,但如果是读取可变长度的记录,那么这段代码将不起作用。您需要使用getline来做可变长度的记录。
看了上面John的注释后,我明白了为什么记录长度是可变的。您需要提供逻辑来决定应该读取多少字段。我想我现在还能回忆起在我的200级cs课上的这种练习。相关文章:
- 如何从文本文件中读取数值,直到遇到字符类型?
- 创建 Spdlog 异步文件记录器时遇到困难
- 我在使用C++文件时遇到了一些问题
- 我在 ndk 中构建文件时遇到错误 android.mk
- 我遇到使用 c++ 逐行读取输入文件的问题
- 从文件导入数据时遇到问题.我有一个没完没了的循环
- 在visual Studio中构建代码时,我遇到错误,.h文件丢失
- 在C++中打开 json 文件时遇到问题
- C++读取文件时遇到困难
- 我在从.txt文件中加起来时遇到了一些问题
- C++击球平均值程序使用输入/输出文件打印名称,平均值,最高/最低平均值时遇到麻烦
- 在 64 位 Linux armv8 计算机上编译 32 位二进制文件时遇到问题
- 在C++中使用 Visual Studio 读取文本文件时遇到问题
- 使用 libzip 打开 zip 文件时遇到问题
- 我在编写从文本文件中读取数据并按升序打印的代码时遇到问题
- 当所有内容都在一个文件中时,为什么会遇到链接器错误
- 当文件遇到特定字符时,如何停止读取文件
- 在此任务上遇到麻烦,我们需要使用指针和数组来找到文本文件中某些数字的平均值,中值和模式
- 我在让我的代码输出整个链表时遇到问题.它只是输出我修改过的一些文本文件,而不是整个东西
- C++处理文件,在制作程序时遇到麻烦