Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2012, 16:05   #1
M_Asja
Пользователь
 
Регистрация: 12.12.2012
Сообщений: 14
По умолчанию [C++] Работа с файлами. Программа не компилируется

Есть программа:
Код:
#include<Windows.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<memory.h>
#include<locale.h>
#include<conio.h>
#include<ctype.h>

void A();
void B();
void C();
void D();
void E();
void main() {SetConsoleCP(1251);SetConsoleOutputCP(1251);
	int n;
setlocale(LC_CTYPE,"Russian");
puts("\nВведите номер функции: 1 – Сформировать с клавиатуры строку  и записать в файл;");
puts("\n			2 – Считать строку из файла и распечатать;");
puts("\n			3 – Зашифровать строку и записать в файл;");
puts("\n			4 – Расшифровать строку и записать в файл;");
puts("\n			5 – Выход. ");
scanf_s("%d", &n);
switch(n)       {
       	case 1: A(); break;
       	case 2: B(); break;
       	case 3: C(); break;
		case 4: D(); break;
		case 5: E(); break;
       	        }
_getch();}
void A() {
	int l=0;
	char *S;
FILE *f=fopen("D:\\_WORK\\L7.txt","w");
S=new char [255];
fflush(stdin);
printf("\nВведите строку для работы\n");
gets(S);
while(S[l])
fputc(S[l++],f);
fclose(f);
delete(S);
}
void B() {
	char a;
	FILE *f=fopen("D:\\_WORK\\L7.txt","r");
	
	a=fgetc(f);
	while (!feof(f))
	{
	putc(a,stdout);
	a=fgetc(f);
	}
	
	printf("\n");
	fclose(f);
}
void C() {
	char a;
	FILE *f=fopen("D:\\_WORK\\L7.txt","w");
	a=fgetc(f);
	while (!feof(f))
	{	
	if (a=='а') a='б';goto r;
	if (a=='э') a='ю';goto r;
	r: putc(a,f);
	a=fgetc(f);
	}
	fclose(f);}
void D() {
	char a;
	FILE *f=fopen("D:\\_WORK\\L7.txt","w");
	a=fgetc(f);
	while (!feof(f))
	{	
	if (a=='б') a='а';goto r;
	if (a=='ю') a='э';goto r;
	r: putc(a,f);
	a=fgetc(f);
	}
	fclose(f);}
void E() {
	printf("\nОкончание работы:)");
	_getch();}
При компиляции выдаётся следующее:
Цитата:
InitializeBuildStatus:
Touching "Debug\7fin.unsuccessfulbuild".
ClCompile:
7.c
c:\program files\microsoft sdks\windows\v7.0a\include\driversp ecs.h(142): error C2008: '$' : unexpected in macro definition
c:\program files\microsoft sdks\windows\v7.0a\include\driversp ecs.h(294): error C2008: '$' : unexpected in macro definition
c:\program files\microsoft sdks\windows\v7.0a\include\driversp ecs.h(295): warning C4005: '__' : macro redefinition
c:\program files\microsoft sdks\windows\v7.0a\include\driversp ecs.h(142) : see previous definition of '__'
c:\program files\microsoft sdks\windows\v7.0a\include\driversp ecs.h(308): error C2008: '$' : unexpected in macro definition
c:\program files\microsoft sdks\windows\v7.0a\include\driversp ecs.h(309): warning C4005: '__' : macro redefinition
c:\program files\microsoft sdks\windows\v7.0a\include\driversp ecs.h(295) : see previous definition of '__'
c:\program files\microsoft sdks\windows\v7.0a\include\driversp ecs.h(312): error C2008: '$' : unexpected in macro definition
c:\program files\microsoft sdks\windows\v7.0a\include\driversp ecs.h(313): warning C4005: '__' : macro redefinition
c:\program files\microsoft sdks\windows\v7.0a\include\driversp ecs.h(309) : see previous definition of '__'
c:\program files\microsoft sdks\windows\v7.0a\include\driversp ecs.h(316): error C2008: '$' : unexpected in macro definition
c:\program files\microsoft sdks\windows\v7.0a\include\driversp ecs.h(317): warning C4005: '__' : macro redefinition
c:\program files\microsoft sdks\windows\v7.0a\include\driversp ecs.h(313) : see previous definition of '__'
c:\program files\microsoft sdks\windows\v7.0a\include\driversp ecs.h(320): error C2008: '$' : unexpected in macro definition
c:\program files\microsoft sdks\windows\v7.0a\include\driversp ecs.h(321): warning C4005: '__' : macro redefinition
c:\program files\microsoft sdks\windows\v7.0a\include\driversp ecs.h(317) : see previous definition of '__'
c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h( 1202): error C2018: unknown character '0x24'
c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h( 1202): error C2061: syntax error : identifier 'drv_group'
c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h( 1202): error C2059: syntax error : ';'
c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h( 1210): error C2085: 'EXCEPTION_ROUTINE' : not in formal parameter list
c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h( 1212): error C2085: 'EXCEPTION_ROUTINE' : not in formal parameter list
c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h( 1212): error C2143: syntax error : missing ';' before '*'
c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h( 2199): fatal error C1903: unable to recover from previous error(s); stopping compilation
Подозреваю, что проблема с <windows.h>.
Подскажите, пожалуйста, как исправить ситуацию.

Последний раз редактировалось M_Asja; 12.12.2012 в 16:11.
M_Asja вне форума Ответить с цитированием
Старый 12.12.2012, 16:11   #2
Larboss
Недо
Участник клуба
 
Регистрация: 11.08.2011
Сообщений: 1,394
По умолчанию

Цитата:
Подозреваю, что проблема с <windows.h>.
А разве не с winnt.h и driversp ecs.h?
С помощью программирования можно разбогатеть и изменить мир к лучшему (с) Бьерн Страуструп
Larboss вне форума Ответить с цитированием
Старый 12.12.2012, 16:15   #3
M_Asja
Пользователь
 
Регистрация: 12.12.2012
Сообщений: 14
По умолчанию

ошибки в winnt.h и driversp ecs.h вылезают, когда я использую <windows.h>
M_Asja вне форума Ответить с цитированием
Старый 12.12.2012, 16:17   #4
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Когда Вы поделились формулировками ошибок с товарищем Гуглом, что он Вам посоветовал?
Abstraction вне форума Ответить с цитированием
Старый 12.12.2012, 16:20   #5
M_Asja
Пользователь
 
Регистрация: 12.12.2012
Сообщений: 14
По умолчанию

ничего толкового.
M_Asja вне форума Ответить с цитированием
Старый 12.12.2012, 16:23   #6
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Это странно. Мой запрос - "driversp ecs.h(142): error C2008: '$' : unexpected in macro definition". Первая ссылка - на stackoverflow, где даётся то, что похоже на правильный ответ в Вашем случае. У Вас точно опция /Za включена?
Abstraction вне форума Ответить с цитированием
Старый 12.12.2012, 16:26   #7
M_Asja
Пользователь
 
Регистрация: 12.12.2012
Сообщений: 14
По умолчанию

Точно включена
M_Asja вне форума Ответить с цитированием
Старый 12.12.2012, 17:17   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,759
По умолчанию

Если "Microsoft C++ extensions" действительно включены, то можно попробывать задать перед инклудом виндовс версию под которую компилится.

Для проверки создайте новый проект с использование предкомпиленного заголовка.
p51x вне форума Ответить с цитированием
Старый 12.12.2012, 17:21   #9
M_Asja
Пользователь
 
Регистрация: 12.12.2012
Сообщений: 14
По умолчанию

Цитата:
задать перед инклудом виндовс версию под которую компилится
- а это как?
M_Asja вне форума Ответить с цитированием
Старый 12.12.2012, 17:35   #10
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,759
По умолчанию

Как-то так
Код:
#pragma once

// Including SDKDDKVer.h defines the highest available Windows platform.

// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.

#include <SDKDDKVer.h>
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами на Си, не работает программа ПеПпИ Помощь студентам 0 28.11.2010 22:29
Программа на Си. Работа с файлами, списками. Vitaly4 Помощь студентам 1 14.11.2010 08:39
Модульная программа на С работа с файлами Stiff Master Общие вопросы C/C++ 1 02.04.2009 19:55
Не компилируется программа kiloruble Общие вопросы C/C++ 11 17.11.2008 20:51
Не компилируется программа VladimirVB Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 14.10.2008 23:22