使用CIN和/或字符串读取带有混合输入的文本文件
Reading a Text file with Mixed Input using cin and/or strings
我刚刚开始解决我必须解决的编码问题,并且不确定如何开始并完成任务。有多个由单词组成的文本文件。如果一个单词是一个数字,那就是学生在问题上的分数,因此您将其添加到学生的考试成绩中。如果这个词不是数字,而是"名称"一词,那么下一个单词是学生的名字。如果单词是"平均",则开始读取数字,直到您读取一个不是数字的单词(或者是文件的末尾)。您平均所有这些数字,并将其添加到分数中。有时,一个数字不会遵循"平均值"。在这种情况下,您会忽略"平均值"。输入总是只有一个名称,学生的名字不会是"平均"或"名称"。
这里有一些示例:
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/
阅读文本后,您必须对其进行解析,检查每个元素是否是一个数字或单词,并根据需要进行处理。
相关文章:
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 2D数组来自文本输入,中间有空格
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 检查输入是否不是整数或数字
- 正在尝试了解输入验证循环
- 读取文件并输入到矢量中
- C++如何通过用户输入删除列表元素
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何使用用户输入在C++中正确填充2D数组
- C++MySQL C api用户输入行
- 在同一行中读取混合输入(字符串/浮点数),并将其存储在数组中
- 使用CIN和/或字符串读取带有混合输入的文本文件
- C++具有混合分隔符和数据类型的文件输入
- 视频混合呈现器 9 (VMR9):从输入引脚的AM_MEDIA_TYPE获取 FPS
- 如何在Qt中混合音频输入设备
- 为什么在尝试读取数字和非数字混合输入时有些字符串会被截断,如下面的代码所示
- c++中的混合数据类型输入
- 当输入行结尾混合时,Std::getline可选