我正在努力在Visual C ++ 2010中导入.csv文件

时间:2013-08-04 12:24:12

标签: c++ visual-c++

我刚开始使用Visual C ++并尝试从字符串数组中的.csv文件导入数据。我知道其他人已经问过这个问题,但我的问题是我的程序甚至没有在该位置读取文件。我尝试按照本网站上的代码进行跟踪,但无济于事。我确定这是一个愚蠢的问题,但我是一个新的语言启动者。代码和输出如下。您认为这个问题是什么?如果你们需要csv文件,请告诉我,我愿意转发你的电子邮件。:

// New_work.cpp:定义控制台应用程序的入口点。 //

  #include "stdafx.h" 

   #include <iostream>

   #include <string>

   #include <fstream>

   using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    int i, j;

    string VolsCorrs[50][20];

    ifstream reader;
    reader.open("C:\C++_Programs\EaR_20130719_VolsCorrs_V5.csv");

    if (!reader)
    {
        cout << "Error opening input file" << endl;
        cin.get();
        return -1;
    }

    for(i=0; i<50; i++)
    {
        for(j=0; j<22; j++)
        {
            getline(reader, VolsCorrs[i][j], ',');
        }
    }

    reader.close();

    cout << "Volatility and Correlation input" << VolsCorrs << endl;

    cin.get();
    return 0;
}

输出:

'New_work.exe': Loaded 'C:\C++_Programs\New_work\Debug\New_work.exe', Symbols loaded.
'New_work.exe': Loaded 'C:\Windows\SysWOW64\ntdll.dll', Symbols loaded (source information stripped).
'New_work.exe': Loaded 'C:\Windows\SysWOW64\kernel32.dll', Symbols loaded (source information stripped).
'New_work.exe': Loaded 'C:\Windows\SysWOW64\KernelBase.dll', Symbols loaded (source information stripped).
'New_work.exe': Loaded 'C:\Windows\SysWOW64\msvcp100d.dll', Symbols loaded (source information stripped).
'New_work.exe': Loaded 'C:\Windows\SysWOW64\msvcr100d.dll', Symbols loaded (source information stripped).
The program '[15844] New_work.exe: Native' has exited with code -1 (0xffffffff).

1 个答案:

答案 0 :(得分:0)

当然,有一个问题是你的数组的维度为50x20,并且在你的嵌套for循环中你因为j<22条件而访问了索引[i] [20]和[i] [21]。它们位于数组的边界之外,因此会导致内存冲突。