2010-01-20 95 views
2

我試圖使用Visual Studio 2008,因爲我在XCode中打開文件時出現問題。我對VS很陌生,但這些都是我採取的步驟。我創建了一個新項目,選擇了Win32控制檯應用程序,空項目。我的代碼是:幫助在Visual Studio 2008中打開文件

// C_test.cpp : Defines the entry point for the console application. 
// 
#include <stdio.h> 
#include <stdlib.h> 

int main(void) 
{ 
    printf("Hello"); 
    FILE *filePtr; 

    filePtr = fopen("test.txt", "r"); 
    if (filePtr == NULL) 
    { 
     fprintf(stderr, "Can't open \"test\"\n"); 
     exit(EXIT_FAILURE); 
    } 
    else 
    { 
     int x; 

     printf("File open successful\n"); 
     /* read one character at a time until EOF is reached */ 
     while ((x = fgetc(filePtr)) != EOF) 
     { 
     //printf("%c", x); 
     fprintf(stderr, "%x\n",x); 
     } 
    } 
    fclose(filePtr); 
    system("pause"); 

    return 0; 
} 

東西似乎並不正確,因爲我的錯誤列表是:

>c:\documents and settings\jon\my documents\visual studio 2008\projects\c_test\c_test\main.c(9) : error C2275: 'FILE' : illegal use of this type as an expression 
1>  c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(69) : see declaration of 'FILE' 
1>c:\documents and settings\jon\my documents\visual studio 2008\projects\c_test\c_test\main.c(9) : error C2065: 'filePtr' : undeclared identifier 
1>c:\documents and settings\jon\my documents\visual studio 2008\projects\c_test\c_test\main.c(11) : error C2065: 'filePtr' : undeclared identifier 
1>c:\documents and settings\jon\my documents\visual studio 2008\projects\c_test\c_test\main.c(11) : warning C4047: '=' : 'int' differs in levels of indirection from 'FILE *' 
1>c:\documents and settings\jon\my documents\visual studio 2008\projects\c_test\c_test\main.c(12) : error C2065: 'filePtr' : undeclared identifier 
1>c:\documents and settings\jon\my documents\visual studio 2008\projects\c_test\c_test\main.c(12) : warning C4047: '==' : 'int' differs in levels of indirection from 'void *' 
1>c:\documents and settings\jon\my documents\visual studio 2008\projects\c_test\c_test\main.c(23) : error C2065: 'filePtr' : undeclared identifier 
1>c:\documents and settings\jon\my documents\visual studio 2008\projects\c_test\c_test\main.c(23) : warning C4047: 'function' : 'FILE *' differs in levels of indirection from 'int' 
1>c:\documents and settings\jon\my documents\visual studio 2008\projects\c_test\c_test\main.c(23) : warning C4024: 'fgetc' : different types for formal and actual parameter 1 
1>c:\documents and settings\jon\my documents\visual studio 2008\projects\c_test\c_test\main.c(29) : error C2065: 'filePtr' : undeclared identifier 
1>c:\documents and settings\jon\my documents\visual studio 2008\projects\c_test\c_test\main.c(29) : warning C4047: 'function' : 'FILE *' differs in levels of indirection from 'int' 
1>c:\documents and settings\jon\my documents\visual studio 2008\projects\c_test\c_test\main.c(29) : warning C4024: 'fclose' : different types for formal and actual parameter 1 
1>Build log was saved at "file://c:\Documents and Settings\jon\My Documents\Visual Studio 2008\Projects\C_test\C_test\Debug\BuildLog.htm" 
1>C_test - 6 error(s), 6 warning(s) 
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 

有什麼想法?對不起,如果這是一個> c:\ documents和settings \ jon \ my文件\ visual studio 2008 \ projects \ c_test \ c_test \ main.c(9):error C2275:'FILE':非法使用此類型作爲表達式 1> c:\ program files \ microsoft visual studio 9.0 \ vc \ include \ stdio.h(69):參見'FILE'聲明 1> c:\ documents and settings \ jon \ my documents \ visual studio 2008 \ projects \ c_test \ c_test \ main.c(9):error C2065:'filePtr':未聲明的標識符 1> c:\ documents and settings \ jon \ my documents \ visual studio 2008 \ projects \ c_test \ c_test \ main.c (11):error C2065:'filePtr':未聲明的標識符 1> c:\ documents and settings \ jon \ my documents \ visual studio 2008 \ projects \ c_test \ c_test \ main.c(11):warning C4047:'= ':'int'與'FILE *'的間接級別不同' 1> c:\ documents and settings \ jon \ my documents \ visual studio 2008 \ projects \ c_test \ c_test \ main.c (12):error C2065:'filePtr':未聲明的標識符 1> c:\ documents and settings \ jon \ my documents \ visual studio 2008 \ projects \ c_test \ c_test \ main.c(12):warning C4047:'= =':'int'與'void *'的間接級別不同1> c:\ documents and settings \ jon \ my documents \ visual studio 2008 \ projects \ c_test \ c_test \ main.c(23):error C2065 :'filePtr':未聲明的標識符 1> c:\ documents and settings \ jon \ my documents \ visual studio 2008 \ projects \ c_test \ c_test \ main.c(23):warning C4047:'function':'FILE *'與「int」的間接級別不同 1> c:\ documents and settings \ jon \ my documents \ visual studio 2008 \ projects \ c_test \ c_test \ main.c(23):warning C4024:'fgetc':不同類型1> c:\ documents and settings \ jon \ my documents \ visual studio 2008 \ projects \ c_test \ c_test \ main.c(29):error C2 for formal and actual parameter 1 065:'filePtr':未聲明的標識符 1> c:\ documents and settings \ jon \ my documents \ visual studio 2008 \ projects \ c_test \ c_test \ main.c(29):warning C4047:'function':'FILE * '與'int'的間接程度不同 1> c:\ documents and settings \ jon \ my documents \ visual studio 2008 \ projects \ c_test \ c_test \ main.c(29):warning C4024:'fclose':different 1>生成日誌保存在「file:// c:\ Documents and Settings \ jon \ My Documents \ Visual Studio 2008 \ Projects \ C_test \ C_test \ Debug \ BuildLog.htm」中 1 > C_test - 6個錯誤,6個警告 ==========構建:0成功,1失敗,0最新,0跳過======== ==

有什麼想法?謝謝!

+0

John Knoeller注意到您的源文件名爲main.c而不是C_test.cpp。我建議你在源文件中編輯你的評論,除了用John Knoeller的建議來解決你的問題。 – 2010-01-20 04:50:40

回答

5

可以在C.

在任何代碼前的範圍{}的頂部只聲明變量在C++中,你可以在任何地方申報。因此,要麼將您的文件名更改爲test.cpp或將您的第一個printf移至FILE * fileptr聲明下方。

int main(void) 
{ 
    FILE *filePtr; 
    printf("Hello"); 
+0

好的謝謝你抓住那個。我忘了那個。我點擊了它在Debug文件夾下創建的應用程序,然後我得到了「File Open Successful」,後面跟着一堆數字,比如68,65,6c,都在他們自己的行上。我的test.txt文件以「hello」開頭。爲什麼我得到這個輸出是有原因的嗎?另外,我嘗試在文件末尾放置一個斷點,以便在命令窗口打開的情況下,如果我從VS打開F5,但是cmd窗口在底部窗口打開和關閉的速度非常快:「程序」[2716 ] C_test.exe:Native'已退出,代碼爲0(0x0)。「 (對不起,我是VS新手 – Crystal 2010-01-20 07:21:31

相關問題