C++ 如果未在.txt文件中声明,则使用ifstream指定默认值
请您帮助修改以下代码以添加两个内容:C++ 如果未在.txt文件中声明,则使用ifstream指定默认值,c++,string,stream,ifstream,ofstream,C++,String,Stream,Ifstream,Ofstream,请您帮助修改以下代码以添加两个内容: 如果.txt文件中没有i,则能够将手动(默认)值分配给a[i](例如,文本文件中的第一行是0,0,40,15第四个元素,在这种情况下,我希望在代码中手动分配它,例如70) 让代码不仅读取数字,还读取字符串(处理数字和字符串,例如0,0,8,“右转”,4) 你一个问题也没问。给你一个开始:@WhozCraig我刚问了modify@Scheff谢谢你的演示,你能帮我把这个应用到问题中的代码上吗“手动”是什么意思?手动输入(又称来自std::cin)?或者,默认值
.txt
文件中没有i
,则能够将手动(默认)值分配给a[i]
(例如,文本文件中的第一行是0,0,40,15
第四个元素,在这种情况下,我希望在代码中手动分配它,例如70)0,0,8,“右转”,4
)你一个问题也没问。给你一个开始:@WhozCraig我刚问了modify@Scheff谢谢你的演示,你能帮我把这个应用到问题中的代码上吗“手动”是什么意思?手动输入(又称来自
std::cin
)?或者,默认值写在你的程序中?你没有问任何问题。给你一个开始:@WhozCraig我刚刚问了modify@Scheff谢谢你的演示,你能帮我把这个应用到问题中的代码上吗“手动”是什么意思?手动输入(又称来自std::cin
)?或者,在程序中写入默认值?
struct Number
{
double value;
operator double() const { return value; }
};
std::istream& operator >>(std::istream& is, Number& number)
{
is >> number.value;
// fail istream on anything other than ',' or whitespace
// end reading on ',' or '\n'
for (char c = is.get();; c = is.get()) {
if (c == ',' or c == '\n')
break;
if (std::isspace(c))
continue;
is.setstate(std::ios_base::failbit);
break;
}
return is;
}
//reading from text file
static std::vector<double> vec;
double a[18]; //values got read from txt file
int i=0;
void readDATA(){
Number value;
std::ifstream myFile;
myFile.open("waypoints_cordinates.txt", std::ios::app);
if (myFile.is_open()){
std::cout << "File is open."<<std::endl;
while(myFile >> value){
vec.push_back(value);
std::cout << "value is " <<value<< std::endl;
a[i]=value;
std::cout << "a" << i << "=" << a[i] << std::endl;
i=i+1;
}
myFile.close();
}
else std::cout << "Unable to open the file";
}
0, 0, 40, 45, 15
0, 1, 40, -45, 10
0, 0, 180, 90, 15