我想要一段C ++代码从文本文件中读取并将信息保存在一些变量数组中......
例如,假设我们有一个Numbers.txt文件,其中包含4个整数。到目前为止我找到的一个示例代码(并没有为我做这个技巧)看起来像这样:
string weight, height, width, depth;
ifstream MyFile("Numbers.txt");
MyFile >> weight;
MyFile >> height;
MyFile >> width;
MyFile >> depth;
但它只读取单个数据,以空格分隔。
我希望代码能够读取可以在同一行中的多个数据。为了澄清,这是一个文本文件格式如何的例子......
FileName
ProjectName
Names
IDs
以及文本文件的实际内容示例......
// SomeData.txt
FileName: SomeData.txt
ProjectName: Second Attempt // should be able to read with spaces too, and save in a string as "Second Attempt"
Names: John, Frank, Mike // I guess it could be without commas too
IDs: 42, 505, 1591, 4358, 12, 743
所以主要的问题是程序在阅读时跳到下一行,忽略“关键字”,如“名称:”,“ID”......同时准备好读取那里的条目数量即使没有预先确定的数量,也会排成一行。
刚刚阅读的信息最好保存为:
FileName -> string
ProjectName -> string
Names -> array of strings
IDs -> array of integers
这样的代码示例如何?
答案 0 :(得分:1)
我的回答是不完整的,但这里概述了我将如何解决这个问题:
当您使用ifstream
时,您可以使用名为getline的函数立即抓取整行,并将其存储在char
数组中。
然后您可以使用strtok
之类的函数来分割该行,因为我注意到数据来自:
个字符。
此时,您可以使用switch
语句,具体取决于:
之前的字符串,并相应地处理您的数据。例如,如果你有IDs
,那么使用atoi将它们转换为ints
并将它们存储在数组等中。