程序继续 运行 没有任何输出
Program continues to run without any output
这里是初级程序员。下面的代码能够 运行 而不会输出任何错误;但是,它不会输出任何内容,并且永远不会停止 运行ning。而且,我花了无数个小时也想不通为什么会这样。
结构包含动态数组,用于在读取文件后存储整数和字符串。此文件 (weatherdata.txt) 包含城市名称、高温和低温的列表。然后,在读取这些行后将它们存储到动态数组中,并在必要时将动态数组的大小加倍(加倍大小)。
为了看看这是否有效,我想输出城市列表,但没有成功。我是不是哪里写错了代码?
#include <iostream>
#include <fstream>
using namespace std;
//Declaring struct
struct dynArr{
string *cityName;
int *hiTemp;
int *loTemp;
int size;
};
//Function read in the desired file
void openFile ( dynArr & arr1 ){
arr1.size = 10;
arr1.cityName = new string[arr1.size];
arr1.hiTemp = new int[arr1.size];
arr1.loTemp = new int[arr1.size];
string city;
int hi, lo;
ifstream is;
is.open ("weatherdata.txt ", ios::in);
int i = 0;
is >> city;
while ( ! is.eof() ){
is >> hi >> lo;
//Double the size of dynamic arrays
if ( i >= arr1.size){
string *tempStr1;
tempStr1 = new string[arr1.size*2];
int *tempInt1;
tempInt1 = new int[arr1.size*2];
int *tempInt2;
tempInt2 = new int[arr1.size*2];
for (int a = 0; a < arr1.size; a++){
tempStr1[a] = arr1.cityName[a];
tempInt1[a] = arr1.hiTemp[a];
tempInt2[a] = arr1.loTemp[a];
}
delete[] arr1.cityName;
delete[] arr1.hiTemp;
delete[] arr1.loTemp;
arr1.cityName = tempStr1;
arr1.hiTemp = tempInt1;
arr1.loTemp = tempInt2;
arr1.size = arr1.size*2;
}
//Store the read lines from file into the dynamic arrays
arr1.cityName[i] = city;
arr1.hiTemp[i] = hi;
arr1.loTemp[i] = lo;
i++;
is >> city;
}
for (int a = 0 ; a < i ; a++)
cout << a << ". " << arr1.cityName[a] << endl;
}
int main(int argc, char *argv[]) {
dynArr arr1;
openFile(arr1);
}
中的文件名和结束引号之间有一个 space
is.open ("weatherdata.txt ", ios::in);
这里是初级程序员。下面的代码能够 运行 而不会输出任何错误;但是,它不会输出任何内容,并且永远不会停止 运行ning。而且,我花了无数个小时也想不通为什么会这样。
结构包含动态数组,用于在读取文件后存储整数和字符串。此文件 (weatherdata.txt) 包含城市名称、高温和低温的列表。然后,在读取这些行后将它们存储到动态数组中,并在必要时将动态数组的大小加倍(加倍大小)。
为了看看这是否有效,我想输出城市列表,但没有成功。我是不是哪里写错了代码?
#include <iostream>
#include <fstream>
using namespace std;
//Declaring struct
struct dynArr{
string *cityName;
int *hiTemp;
int *loTemp;
int size;
};
//Function read in the desired file
void openFile ( dynArr & arr1 ){
arr1.size = 10;
arr1.cityName = new string[arr1.size];
arr1.hiTemp = new int[arr1.size];
arr1.loTemp = new int[arr1.size];
string city;
int hi, lo;
ifstream is;
is.open ("weatherdata.txt ", ios::in);
int i = 0;
is >> city;
while ( ! is.eof() ){
is >> hi >> lo;
//Double the size of dynamic arrays
if ( i >= arr1.size){
string *tempStr1;
tempStr1 = new string[arr1.size*2];
int *tempInt1;
tempInt1 = new int[arr1.size*2];
int *tempInt2;
tempInt2 = new int[arr1.size*2];
for (int a = 0; a < arr1.size; a++){
tempStr1[a] = arr1.cityName[a];
tempInt1[a] = arr1.hiTemp[a];
tempInt2[a] = arr1.loTemp[a];
}
delete[] arr1.cityName;
delete[] arr1.hiTemp;
delete[] arr1.loTemp;
arr1.cityName = tempStr1;
arr1.hiTemp = tempInt1;
arr1.loTemp = tempInt2;
arr1.size = arr1.size*2;
}
//Store the read lines from file into the dynamic arrays
arr1.cityName[i] = city;
arr1.hiTemp[i] = hi;
arr1.loTemp[i] = lo;
i++;
is >> city;
}
for (int a = 0 ; a < i ; a++)
cout << a << ". " << arr1.cityName[a] << endl;
}
int main(int argc, char *argv[]) {
dynArr arr1;
openFile(arr1);
}
is.open ("weatherdata.txt ", ios::in);