2013-08-04 21 views
0

我刚刚开始使用Visual C++并尝试从字符串数组中的.csv文件导入数据。我知道这个问题已被其他人问过,但我的问题是,我的程序甚至没有在该位置读取文件。我试着按照这个网站上的代码的线索,但无济于事。我相信这是一个愚蠢的问题,但是这个语言是一个新的开端。代码和输出如下。你认为这个问题是什么?如果你们需要csv文件,请让我知道,我会愿意在你的电子邮件中转发给你。:我很努力在Visual C++ 2010中导入.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). 
+5

您需要将字符串中的字符加倍,否则将被视为转义。 – nneonneo

+0

非常感谢。这当然似乎是一个问题。 – user2650280

+0

'/'而不是'\\'也可以。 –

回答

0

当然,有一个问题是,你的阵列在尺寸50x20和你的嵌套for循环您正在访问指数[I] [20]和[我] [21]因为j<22条件。这些超出了数组的边界,从而导致内存违规。

+0

谢谢!我看到了我的愚蠢。 – user2650280