我在下面附加了一个相当简单的代码,其中手动将文件名输入到程序中并定义为大小为 9 的数组,这在本示例中是正确的。为简洁起见,将文件名传递给此处未包含的函数。该函数将在数据中以五个向量字符串的形式打开文件,并将它们反馈给主程序,在主程序中可以通过指针算法对其进行访问。正如我在本例中提到的,程序可以工作,但是如果我将 File1 的大小从 9 更改为 8,它就不起作用,因为没有考虑空终止符。本着使这个程序更安全的精神,我希望程序在字符串大小不包括空终止符时识别条件,并跳过函数调用及其所有相关的代码行。然而,当不包含空终止符时,代码不会产生错误,所以我不确定如何在这种情况下使用异常处理。任何想法将不胜感激。
#include <vector>
#include <iostream>
#include <fstream>
#include "Read_Columnar_File.h"
int main(int argc, const char * argv[]) {
std::vector<std::string> str3;
std::vector<int> str4;
std::vector<char> str5;
std::vector<int> str6;
unsigned long size_Misc;
float Peak_Misc_Value;
std::vector<float> MISC_DATA; // Reads in Misc. spending data
char File1[9];
strcpy(File1, "Misc.txt");
Read_Five_Columns(File1,MISC_DATA,str3,str4,str5,str6);
str3.clear(); str4.clear(); str5.clear(); str6.clear();
size_Misc = MISC_DATA.size();
auto max_Misc = std::max_element(MISC_DATA.begin(), MISC_DATA.end());
Peak_Misc_Value = *max_Misc;
}