使用CIN和/或字符串读取带有混合输入的文本文件

Reading a Text file with Mixed Input using cin and/or strings

本文关键字:混合 输入 文件 文本 读取 CIN 字符串 使用      更新时间:2023-10-16

我刚刚开始解决我必须解决的编码问题,并且不确定如何开始并完成任务。有多个由单词组成的文本文件。如果一个单词是一个数字,那就是学生在问题上的分数,因此您将其添加到学生的考试成绩中。如果这个词不是数字,而是"名称"一词,那么下一个单词是学生的名字。如果单词是"平均",则开始读取数字,直到您读取一个不是数字的单词(或者是文件的末尾)。您平均所有这些数字,并将其添加到分数中。有时,一个数字不会遵循"平均值"。在这种情况下,您会忽略"平均值"。输入总是只有一个名称,学生的名字不会是"平均"或"名称"。

这里有一些示例:

UNIX> cat test-1.txt
NAME Fred
UNIX> ./moonglow < test-1.txt
Fred 0
UNIX> cat test-2.txt
NAME Dontonio
8.6
16.2
UNIX> ./moonglow < test-2.txt
Dontonio 24.8
UNIX> cat test-3.txt
I miss Starrlight!!
15 NAME
Frank
UNIX> ./moonglow < test-3.txt
Frank 15
UNIX> cat test-4.txt
AVERAGE 10 15 20 NAME Luther 10 Starrlite!!
UNIX> ./moonglow < test-4.txt
Luther 25
UNIX> cat test-5.txt
NAME Baby-Daisy
AVERAGE 3 4 5 6
AVERAGE 7 8 9
Where's Starrlite!!
UNIX> ./moonglow < test-5.txt
Baby-Daisy 12.5
UNIX> cat test-6.txt
Starrlite AVERAGE Starrlite!!! NAME 
Starrlite
AVERAGE 55 Starrlite!!!  Starrlite
AVERAGE Starrlite 5 6 7
UNIX> ./moonglow < test-6.txt
Starrlite 73 

有时,不必要的单词出现在文件中,必须忽略。

基本上,我想知道与阅读输入有关的方法?getline?纯粹是cin?我不确定如何处理每个信息都可以在每个文件中更改为文件的不同位置(名称,平均得分)。

您正在从文件中获取输入,因此您不能使用CIN等。

您必须在此链接中使用"文本文件"中的方法:
http://www.cplusplus.com/doc/tutorial/files/

阅读文本后,您必须对其进行解析,检查每个元素是否是一个数字或单词,并根据需要进行处理。