我試圖使用FREAD()讀一個簡單的文本文件(這裏out.wsp),但我得到「 類型'System.AccessViolationException'「未處理的異常」。我在VS2010中遇到了這個錯誤,但是當我在Linux中編譯並運行它時很好。任何想法的代碼有什麼問題?另外,因爲我是C/C++中的新手,是否有任何其他方法可以執行此類操作?類型的未處理的異常「System.AccessViolationException」,而嘗試使用讀取文本文件FREAD
#include "stdafx.h"
#include <stdio.h>
using namespace std;
int main(){
char* wspfile = "out.wsp";
FILE* fp = NULL;
fp = fopen(wspfile , "r");
if(fp == NULL) {
printf("Error: can not open file %s\n", wspfile);
return -1;
}
rc = fread(wspfile,sizeof(wspfile)-1,1, fp);
wspfile[rc] = '\0';
fclose(fp);
return 0;
}
感謝,
Fanttazio
標準'fread'不會拋出異常。這是非常標準的C++嗎? http://www.cplusplus.com/reference/clibrary/cstdio/fread/ – 2012-08-16 13:24:37
這看起來像C代碼(除了'using namespace std;'這是毫無意義的)。 – hmjd 2012-08-16 13:29:02
@Kirirl這不是C++。這是使用'namespace std;'的C語言。字符文字在C++中是不變的,所以你得到一個訪問衝突試圖寫入它。 fread不會在這裏拋出異常 - 這是VC++運行時拋出的訪問衝突異常。 – Cubic 2012-08-16 13:29:49