程序继续运行,没有任何输出

Program continues to run without any output

本文关键字:任何 输出 继续 运行 程序      更新时间:2023-10-16

这里是初级程序员。下面的代码能够运行而不输出任何错误;但是,它不输出任何内容,并且永远不会停止运行。而且,我花了无数个小时也弄不明白为什么会这样。

struct包含动态数组,用于在读取文件后存储整数和字符串。该文件(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);