Помогите открыть файл в Visual Studio 2008 - PullRequest
2 голосов
/ 20 января 2010

Я пытаюсь использовать Visual Studio 2008, так как у меня были проблемы с открытием файла в XCode. Я новичок в VS, но это те шаги, которые я предпринял. Я создал новый проект, выбрал консольное приложение Win32, пустой проект. Мой код:

// 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 and Settings \ jon \ мои документы \ visual studio 2008 \ projects \ c_test \ c_test \ main.c (9): ошибка C2275: 'FILE': недопустимое использование этого типа в качестве выражения 1> c: \ program files \ microsoft visual studio 9.0 \ vc \ include \ stdio.h (69): см. Объявление 'FILE' 1> c: \ Documents and Settings \ jon \ мои документы \ visual studio 2008 \ projects \ c_test \ c_test \ main.c (9): ошибка C2065: 'filePtr': необъявленный идентификатор 1> c: \ Documents and Settings \ jon \ мои документы \ visual studio 2008 \ projects \ c_test \ c_test \ main.c (11): ошибка C2065: 'filePtr': необъявленный идентификатор 1> c: \ Documents and Settings \ jon \ мои документы \ visual studio 2008 \ projects \ c_test \ c_test \ main.c (11): предупреждение C4047: '=': 'int' отличается по уровням косвенности от 'FILE * ' 1> c: \ Documents and Settings \ jon \ мои документы \ visual studio 2008 \ projects \ c_test \ c_test \ main.c (12): ошибка C2065: 'filePtr': необъявленный идентификатор 1> c: \ Documents and Settings \ jon \ мои документы \ visual studio 2008 \ projects \ c_test \ c_test \ main.c (12): предупреждение C4047: '==': 'int' отличается по степени косвенности от 'void *» 1> c: \ Documents and Settings \ jon \ мои документы \ visual studio 2008 \ projects \ c_test \ c_test \ main.c (23): ошибка C2065: 'filePtr': необъявленный идентификатор 1> c: \ Documents and Settings \ jon \ мои документы \ visual studio 2008 \ projects \ c_test \ c_test \ main.c (23): предупреждение C4047: 'function': 'FILE *' отличается по уровням косвенности от 'int ' 1> c: \ Documents and Settings \ jon \ мои документы \ visual studio 2008 \ projects \ c_test \ c_test \ main.c (23): предупреждение C4024: 'fgetc': разные типы для формального и фактического параметра 1 1> c: \ Documents and Settings \ jon \ мои документы \ visual studio 2008 \ projects \ c_test \ c_test \ main.c (29): ошибка C2065: 'filePtr': необъявленный идентификатор 1> c: \ Documents and Settings \ jon \ мои документы \ visual studio 2008 \ projects \ c_test \ c_test \ main.c (29): предупреждение C4047: 'function': 'FILE *' отличается по уровням косвенности от 'int ' 1> c: \ Documents and Settings \ jon \ мои документы \ visual studio 2008 \ projects \ c_test \ c_test \ main.c (29): предупреждение C4024: 'fclose': разные типы для формального и фактического параметра 1 1> Журнал сборки был сохранен в «file: // c: \ Documents and Settings \ jon \ Мои документы \ Visual Studio 2008 \ Projects \ C_test \ C_test \ Debug \ BuildLog.htm» 1> C_test - 6 ошибок, 6 предупреждений ========== Построение: 0 выполнено, 1 не выполнено, 0 обновлено, 0 пропущено ==========

Есть мысли? Спасибо!

1 Ответ

5 голосов
/ 20 января 2010

Вы можете объявить переменные только в верхней части области видимости {} перед любым кодом в C.

В C ++ вы можете объявить их где угодно.Поэтому либо измените имя файла на test.cpp, либо переместите свой первый printf вниз под объявлением FILE * fileptr.

int main(void ) 
{ 
   FILE *filePtr; 
   printf("Hello"); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...