【发布时间】:2011-01-07 03:03:15
【问题描述】:
我正在尝试使用 Visual Studio 2008,因为我在 XCode 中打开文件时遇到问题。我是 VS 的新手,但这些是我采取的步骤。我创建了一个新项目,选择 Win32 Console Application,空项目。我的代码是:
// 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 ==========
有什么想法吗?抱歉,如果这是 a>c:\documents and settings\jon\my documents\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) :见“文件”的声明 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) : 警告 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' : undeclared identifier 1>c:\documents and settings\jon\my documents\visual studio 2008\projects\c_test\c_test\main.c(12) : 警告 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' : undeclared identifier 1>c:\documents and settings\jon\my documents\visual studio 2008\projects\c_test\c_test\main.c(23) : 警告 C4047: 'function' : 'FILE *' 在间接级别上与 'int 不同' 1>c:\documents and settings\jon\my documents\visual studio 2008\projects\c_test\c_test\main.c(23) : 警告 C4024: 'fgetc' : 形式参数和实际参数 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) : 警告 C4047: 'function' : 'FILE *' 在间接级别上与 'int 不同' 1>c:\documents and settings\jon\my documents\visual studio 2008\projects\c_test\c_test\main.c(29) : 警告 C4024: 'fclose' : 形式参数和实际参数 1 的不同类型 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 跳过 ==========
有什么想法吗?谢谢!
【问题讨论】:
-
John Knoeller 注意到您的源文件名为 main.c 而不是 C_test.cpp。除了按照 John Knoeller 建议的方式解决问题之外,我建议您在源文件中编辑您的评论。
标签: c visual-studio file-io