Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 读取文本文件时出错_C++ - Fatal编程技术网

C++ 读取文本文件时出错

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

我试图写一个代码,能够读取数据从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(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}我做了,读了,但是我不能理解它?