【发布时间】:2014-04-29 00:32:19
【问题描述】:
下面的代码设计了两个输入两个独立的.txt文件。每个文件的每一行都有一个不同的整数。下面的代码读取文件,并将每个值存储在数组的索引中。输入效果很好,while 循环中的 cout 将正确的值打印到命令行。
然而问题在于 cout
set2.txt
1
3
9
2
代码
int maxSize = 100;
int setOne[maxSize];
int setTwo[maxSize];
int setOneSize = 0;
int setTwoSize = 0;
//open files
ifstream fileOne ("set1.txt");
ifstream fileTwo ("set2.txt");
int number;
int number2;
fileOne >> number;
fileTwo >> number2;
//declare arrays
for(int i = 0; i < maxSize; i++) {
while (fileOne.good()) {
setOne[i] = number;
cout << "set 1 " << setOne[i] << endl;
fileOne >> number;
setOneSize += 1;
}
while (fileTwo.good()) {
setTwo[i] = number2;
cout << "set 2 " << setTwo[i] << endl;
fileTwo >> number2;
setTwoSize += 1;
}
}
cout << setTwo[0] << endl;
【问题讨论】:
-
你是如何声明你的数组的?
-
你是如何为你的数组分配内存的?
-
术语:您的程序正在“填充”数组或为数组“赋值”。您发布的代码中没有
setOne或setTwo的声明。 -
声明在顶部
-
使用
istream::good()不是首选做法。使用某行while (fileOne >> number)。