我把从两个文本里读取的数据存储在两个数组里,然后想找出一个数组与另一个数组不同的元素,但是写出的代码编译没有错,却没有输出结果,请问是怎么回事??主要代码如下:
infile1.seekg(0,ios::end);
streampos size1 = infile1.tellg();
int length1 = size1;
infile1.seekg(0 , ios::beg);
cout << length1 << endl;
char *array1=new char[length1];
infile1.read(array1 , length1);
infile2.seekg(0,ios::end);
streampos size2 = infile2.tellg();
int length2 = size2;
infile2.seekg(0 , ios::beg);
cout << length2 << endl;
char *array2=new char[length2];
infile2.read(array2 , length2);
int k;
for(int i = 0; i < length1; i++)
{
k = 0;
for(int j = 0; j < length2; j++)
{
if(array1[i] == array2[j])
{
k = 1;
break;
}
}
if(k == 0)
cout << array1[i] << endl;
}
import java.util.LinkedList;
public class MainC {
public static void main(String[] args) {
// int[] a = { 1, 2, 3, 4 };
// int[] b = { 0, 1, 5, 3 };
// int[] c = new int[a.length+b.le......
答案就在这里:比较两个数组中不同的值
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。
比较是没有错的 可能是你数组赋值的时候错了
加个断点看看两个数组的元素 c++ 基本都忘了 你前面的一大段我看不太懂
初步看可能是你文件读写有问题,read函数用于二进制文件的读写,你是按二进制打开的吗?默认打开方式是文本方式。
调试程序步骤:
1、看看输入输出文件是否在项目目录下
2、文件打开成功后,看看读入的数组是否正确
if(array1[i] == array2[j])这句有问题吧,你的本意是不等于就跳出吧?既然这样应该是if(array1[i] != array2[j])