C++ 读取文本文件时出错
我试图写一个代码,能够读取数据从txt文件(任务)。我做到了,但问题是结果并不像预期的那样,因为C++ 读取文本文件时出错,c++,C++,我试图写一个代码,能够读取数据从txt文件(任务)。我做到了,但问题是结果并不像预期的那样,因为 at={3,5,7,10,15} bt={2,6,8,16,22}!!! 代码是: #include <iostream> #include <fstream> using namespace std; void two_arrays_txt_file(float at[5], float bt[5], float zt[], float mt[]); int main
at={3,5,7,10,15}
bt={2,6,8,16,22}!!!
代码是:
#include <iostream>
#include <fstream>
using namespace std;
void two_arrays_txt_file(float at[5], float bt[5], float zt[], float mt[]);
int main(int argc, char* argv[]) {
float zt[5]; // the result value
float mt[5];
float at[5];
float bt[5];
ifstream fin;
fin.open("2arrays.txt");
two_arrays_txt_file(at, bt, zt, mt);
printf("(with a function two ararays from txt file) \n adding z1 = %8.2f, z2 = %8.2f\t,z3=%f\t,z4=%f \tk=%f\n", zt[0], zt[1], zt[2], zt[3], zt[4]);
printf("(with a function of productof two ararays from txt file) \n Multiplying mm1 = %8.2f, mm2 = %8.2f, mm3 = %8.2f, mm4 = %8.2f, mm5 = %8.2f", mt[0], mt[1], mt[2], mt[3], mt[4]);
fin.close();
cout << "Press Enter to Continue";
getchar();
}
void two_arrays_txt_file(float at[5], float bt[5], float zt[], float mt[]) { // Task 6
int i;
for (i = 0; i<5; i++) {
zt[i] = at[i] + bt[i];
mt[i] = at[i] * bt[i];
}
}
#包括
#包括
使用名称空间std;
作废两个_数组_txt_文件(float at[5]、float bt[5]、float zt[],float mt[]);
int main(int argc,char*argv[]){
float zt[5];//结果值
浮动mt[5];
浮动在[5];
浮动bt[5];
流鳍;
财务公开(“2arrays.txt”);
两个_数组_txt_文件(at、bt、zt、mt);
printf(“(使用来自txt文件的两条araray函数)\n添加z1=%8.2f,z2=%8.2f\t,z3=%f\t,z4=%f\tk=%f\n”,zt[0],zt[1],zt[2],zt[3],zt[4]);
printf(“(具有从txt文件生成两条ararray的功能)\n乘以mm1=%8.2f,mm2=%8.2f,mm3=%8.2f,mm4=%8.2f,mm5=%8.2f”,mt[0],mt[1],mt[2],mt[3],mt[4]);
fin.close();
cout在此处显示的代码段中,您没有从该文件中读取任何内容。in.open()将只打开该文件。您需要从中读取
您可以在“变量名”中执行此操作。我不确定您的文本文件是什么,但您没有从文本文件中读取任何内容,只是打开并关闭了文本文件。
这是你应该做的
#include <iostream>
#include <fstream>
using namespace std;
void two_arrays_txt_file(float at[5], float bt[5], float zt[], float mt[]);
int main(int argc, char* argv[]) {
float zt[5]; // the result value
float mt[5];
float at[5];
float bt[5];
ifstream fin;
fin.open("2arrays.txt");
fin>>at[1] ;// //you have to take input from file like this
/* since i dont know that in what way numbers are stored in file so i cannot tell you the exact way to take input and get output the way you want it.*/
two_arrays_txt_file(at, bt, zt, mt);
printf("(with a function two ararays from txt file) \n adding z1 = %8.2f, z2 = %8.2f\t,z3=%f\t,z4=%f \tk=%f\n", zt[0], zt[1], zt[2], zt[3], zt[4]);
printf("(with a function of productof two ararays from txt file) \n Multiplying mm1 = %8.2f, mm2 = %8.2f, mm3 = %8.2f, mm4 = %8.2f, mm5 = %8.2f", mt[0], mt[1], mt[2], mt[3], mt[4]);
fin.close();
cout << "Press Enter to Continue";
getchar();
}
void two_arrays_txt_file(float at[5], float bt[5], float zt[], float mt[]) {
int i;
for (i = 0; i<5; i++) {
zt[i] = at[i] + bt[i];
mt[i] = at[i] * bt[i];
}
#包括
#包括
使用名称空间std;
作废两个_数组_txt_文件(float at[5]、float bt[5]、float zt[],float mt[]);
int main(int argc,char*argv[]){
float zt[5];//结果值
浮动mt[5];
浮动在[5];
浮动bt[5];
流鳍;
财务公开(“2arrays.txt”);
fin>>在[1];///您必须像这样从文件中获取输入
/*因为我不知道数字是以什么方式存储在文件中的,所以我无法告诉您以您想要的方式获取输入和输出的确切方式*/
两个_数组_txt_文件(at、bt、zt、mt);
printf(“(使用来自txt文件的两条araray函数)\n添加z1=%8.2f,z2=%8.2f\t,z3=%f\t,z4=%f\tk=%f\n”,zt[0],zt[1],zt[2],zt[3],zt[4]);
printf(“(具有从txt文件生成两条ararray的功能)\n乘以mm1=%8.2f,mm2=%8.2f,mm3=%8.2f,mm4=%8.2f,mm5=%8.2f”,mt[0],mt[1],mt[2],mt[3],mt[4]);
fin.close();
你能从哪里读取该文件吗?我创建了一个名为“arrays.txt”的文件,并尝试使用ifstream fin;fin.open(“2arrays.txt”)将其刷新;文件的内容是什么?此程序的实际输出是什么?预期输出是什么?实际上没有从文件中读取任何内容,只是打开文件以便读取。没有输入(例如>
)操作,没有getline
调用,没有read
调用,没有要从文件中实际读取的内容。也许您需要读取?也许您应该尝试搜索文件输入/输出教程?@BasheerAl_Hadeethi如果您的文件包含“at={3,5,7,10,15}”这不是一个C++代码。它只是一段文本。打开文件不会读取它,并且神奇地执行它,就像它是C++代码一样。我认为你需要复习一些文件处理(和C++)基础。文本文件包含以下内容:at = {3,5,7,10,15},BT= {2,6,8,16,22}我做了,读了,但是我不能理解它?