2013-08-04 20 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