Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > С/С++
Перезагрузить страницу При объявлении переменной компилятор выжает ошибку
Закрытая тема
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Anonymous
Guest
 
Сообщений: n/a
По умолчанию При объявлении переменной компилятор выжает ошибку - 04.07.2003, 02:54

что-то я торможу... Но при попытке объявить переменную после(или в процессе) работы с файлом -- компилятор выдает ошибку вида: [C++ Error] pl.c(8): E2140 Declaration is not allowed here
Простой пример:
#include <stdio.h>
void main(int argc, char *argv[])
{
int k; /*все ОК*/
FILE *F;
F=fopen("out.txt","w");
fclose(F);
int o; /*ошибка*/
}
Проверялось на MVC++ 6.0 и Borland C++ 6.0.
Что здесь не так?
  (#2 (permalink)) Старый
Leon Leon вне форума
Member
 
Сообщений: 262
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.10.2002
По умолчанию 04.07.2003, 08:40

А почему ты не хочешь объявить ее в начале блока?
Какая такая необходимость я что-то не очень пойму.Может это связано со способом открытия файлов. Попробуй не программировать на Си а писать на Си++. То есть используя istream.h , ostream.h Мне кажется проблема уйдет. Но вопрос интересный поковыряюсь.
  (#3 (permalink)) Старый
Olesya Olesya вне форума
Member
 
Сообщений: 1,485
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 11.06.2002
По умолчанию 04.07.2003, 11:40

Насколько я помню С (уже давно с ним дела не имел), то все переименные должны быть обявлены в начале..
  (#4 (permalink)) Старый
Anonymous
Guest
 
Сообщений: n/a
По умолчанию 04.07.2003, 14:53

to Leon: Потому что в файле берутся исходные данные, и от них зависит необходимость создания тех или иных переменных...
Если открывать на запись или дописывание -- эффект тот же...

to Olesya: Ты что-то путаешь с паскалем... Переменные должны быть объявленны лишь до их использования
  (#5 (permalink)) Старый
Olesya Olesya вне форума
Member
 
Сообщений: 1,485
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 11.06.2002
По умолчанию 04.07.2003, 15:00

Maxus
Это ты себе погнал! Я правилшьно сказал. ПО СТАНДАРТУ НЕЗЛЬЗЯ!
Другой вопрос С++, тогда можно.
Ads.
  (#6 (permalink)) Старый
Anonymous
Guest
 
Сообщений: n/a
По умолчанию 04.07.2003, 15:05

to Olesya: Посыпаю голову пеплом... Только что поднял стандарт ANSI C... Ты прав! я сам давно не писал на Си вот и результат... Извини и Спасибо!
  (#7 (permalink)) Старый
Anonymous
Guest
 
Сообщений: n/a
По умолчанию Re: Код на Си... - 05.08.2003, 13:17

Цитата:
Originally posted by Maxus
[b]что-то я торможу... Но при попытке объявить переменную после(или в процессе) работы с файлом -- компилятор выдает ошибку вида: [C++ Error] pl.c(: E2140 Declaration is not allowed here
Простой пример:
#include <stdio.h>
void main(int argc, char *argv[])
{
int k; /*все ОК*/
FILE *F;
F=fopen("out.txt","w");
fclose(F);
int o; /*ошибка*/
}
Проверялось на MVC++ 6.0 и Borland C++ 6.0.
Что здесь не так?
А Вы уверены, что в "int o" это действительно ноль, а не латинская буква "о"?
  (#8 (permalink)) Старый
Absolut Absolut вне форума
Member
 
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 25.07.2003
По умолчанию Re: Код на Си... - 05.08.2003, 19:06

Цитата:
Originally posted by Буревестник
[b]А Вы уверены, что в "int o" это действительно ноль, а не латинская буква "о"?
А это и должна быть латинская буква. Где ты видел идентификаторы, начинающиеся с цифры ?! Проверяется банальным поиском символа.
А код рабочий на С++, но не на С. Что уже обсуждалось чуть выше. Ну а если переменную нужно создавать не в первых строчках функции, то можно замутить что-нибудь с динамическим выделением памяти alloc, malloc ( "чистый" С ).
Ads
Закрытая тема

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите найти ошибку в вводе переменной Alelllka Вопросы начинающих программистов 1 08.11.2011 10:56
Как найти ошибку в программном коде компилятор ее не видит Дмитрий-- Visual C++ 0 21.12.2010 22:05
Компилятор выдает ошибку .exe raised exception Marla Singer Вопросы начинающих программистов 3 27.07.2007 20:55
Компилятор ругается на значение переменной CString perem ilya515 Visual C++ 2 31.10.2006 14:50
Компилятор выдает warning C4995 как исправить эту ошибку Graf_L Visual C++ 4 30.08.2006 21:24
Подключение библиотеке wininet.lib компилятор выдает ошибку Monah IRH Visual C++ 7 25.05.2006 20:16
Fatal error компилятор выдал ошибку как ее исправить user_c C++ Builder 6 05.11.2005 22:16
Вызов деструктора компилятор находит ошибку Слава++ C++ Builder 6 28.09.2005 15:56
Компилятор выдает ошибку ios_base ARSi С/С++ 5 28.04.2005 15:14
Компилятор выдает ошибку No index forfields PeroManiak C++ Builder 2 29.06.2004 10:35
Как исправить ошибку, компилятор VC++ Dim4n Вопросы начинающих программистов 14 29.12.2003 13:18
При объявлении таймера компилятор выдает ошибку Anonymous Visual C++ 5 19.05.2003 17:22



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов