Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.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++中导入/导出文件。问题在于写入函数读取文件分数并将其导出到屏幕。我的老师解决了这个问题,并通过以下源代码教我们: #include <fstream> #include <iostream> using namespace std; struct FRACTION{ int numerator, denominator; }; istream& operator>>(istream& inDev, FRACTION& p){ inDev >> p.numerator >> p.denominator; return inDev; } ostream& operator<<(ostream& outDev, FRACTION& p) { outDev << p.numerator << "/" << p.denominator; return outDev; } PHANSO* ReadArrayFraction(istream& inDev, int& n){ FRACTION* arr = NULL; cin >> n; if (inDev.fail() || n <= 0){ return arr; } arr = new FRACTION[n]; if (arr != NULL){ for (int i = 0; i < n; i++){ inDev >> arr[i]; if (inDev.fail()){ delete[] arr; arr = NULL; break; } } } return arr; } void main(){ ifstream fs("FRACTION.txt"); if (fs.fail()){ cout << "Can't open the file" << endl; } int n; FRACTION* arr = ReadArrayFraction(fs, n); for (int i = 0; i < n; i++) { cout << arr[i] << endl; } }_C++_File_Operator Overloading_Fstream - Fatal编程技术网

C+中导入导出文件和重载操作符的几个问题+; 我刚刚学会了如何在C++中导入/导出文件。问题在于写入函数读取文件分数并将其导出到屏幕。我的老师解决了这个问题,并通过以下源代码教我们: #include <fstream> #include <iostream> using namespace std; struct FRACTION{ int numerator, denominator; }; istream& operator>>(istream& inDev, FRACTION& p){ inDev >> p.numerator >> p.denominator; return inDev; } ostream& operator<<(ostream& outDev, FRACTION& p) { outDev << p.numerator << "/" << p.denominator; return outDev; } PHANSO* ReadArrayFraction(istream& inDev, int& n){ FRACTION* arr = NULL; cin >> n; if (inDev.fail() || n <= 0){ return arr; } arr = new FRACTION[n]; if (arr != NULL){ for (int i = 0; i < n; i++){ inDev >> arr[i]; if (inDev.fail()){ delete[] arr; arr = NULL; break; } } } return arr; } void main(){ ifstream fs("FRACTION.txt"); if (fs.fail()){ cout << "Can't open the file" << endl; } int n; FRACTION* arr = ReadArrayFraction(fs, n); for (int i = 0; i < n; i++) { cout << arr[i] << endl; } }

C+中导入导出文件和重载操作符的几个问题+; 我刚刚学会了如何在C++中导入/导出文件。问题在于写入函数读取文件分数并将其导出到屏幕。我的老师解决了这个问题,并通过以下源代码教我们: #include <fstream> #include <iostream> using namespace std; struct FRACTION{ int numerator, denominator; }; istream& operator>>(istream& inDev, FRACTION& p){ inDev >> p.numerator >> p.denominator; return inDev; } ostream& operator<<(ostream& outDev, FRACTION& p) { outDev << p.numerator << "/" << p.denominator; return outDev; } PHANSO* ReadArrayFraction(istream& inDev, int& n){ FRACTION* arr = NULL; cin >> n; if (inDev.fail() || n <= 0){ return arr; } arr = new FRACTION[n]; if (arr != NULL){ for (int i = 0; i < n; i++){ inDev >> arr[i]; if (inDev.fail()){ delete[] arr; arr = NULL; break; } } } return arr; } void main(){ ifstream fs("FRACTION.txt"); if (fs.fail()){ cout << "Can't open the file" << endl; } int n; FRACTION* arr = ReadArrayFraction(fs, n); for (int i = 0; i < n; i++) { cout << arr[i] << endl; } },c++,file,operator-overloading,fstream,C++,File,Operator Overloading,Fstream,我有两个问题: 1.我们如何使用这行“inDev>>arr[i]”将文件的传输分数导入arr[i]?我认为文件Fraction.txt中只有字符,它们不是整数,所以2个对象不是相同的类型,但编译器仍然可以工作。 2.调试时,此行“inDev>>arr[I]”缺少文件的第一个字符,函数返回NULL。在这种情况下,“inDev>>arr[i]”缺少“3”。如果我添加其他字符,如“2”,它将错过“2”,并在3开始转移。 我不明白这些问题,所以希望你们能给我解释一下,谢谢大家 您是否曾经使用std::c

我有两个问题: 1.我们如何使用这行“inDev>>arr[i]”将文件的传输分数导入arr[i]?我认为文件Fraction.txt中只有字符,它们不是整数,所以2个对象不是相同的类型,但编译器仍然可以工作。 2.调试时,此行“inDev>>arr[I]”缺少文件的第一个字符,函数返回NULL。在这种情况下,“inDev>>arr[i]”缺少“3”。如果我添加其他字符,如“2”,它将错过“2”,并在3开始转移。
我不明白这些问题,所以希望你们能给我解释一下,谢谢大家

您是否曾经使用
std::cin
读取整数?为什么您认为使用输入文件流读取整数会有所不同?在C++中,输入流是输入流,是输入流…它们都是一样的。你的老师应该参加C++课程。该代码存在许多问题。分数的输入和输出格式不兼容,
运算符中没有
const
3 4  
1 2 
2 3