Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Функция fopen 
:(
    Опции темы
123
Дата 15.9.2006, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 28.7.2006

Репутация: нет
Всего: нет



Мой c++ builder 6 ругается на этот код:

#include <stdio.h>
FILE* file=fopen("filename.txt", "w+");
fprintf(file,"%S", "Это строка будет в файле");
fclose(file);

Выдает ошибку:

  [C++ Error] Unit5.cpp(3): E2303 Type name expected
  [C++ Error] Unit5.cpp(3): E2356 Type mismatch in redeclaration of 'fprintf(FILE *,const char *,...)'
  [C++ Error] Unit5.cpp(3): E2063 Illegal initialization
  [C++ Error] Unit5.cpp(3): E2293 ) expected
  [C++ Error] Unit5.cpp(4): E2303 Type name expected
  [C++ Error] Unit5.cpp(4): E2356 Type mismatch in redeclaration of 'fclose(FILE *)'
  [C++ Error] Unit5.cpp(4): E2063 Illegal initialization
  [C++ Error] Unit5.cpp(4): E2293 ) expected
PM MAIL   Вверх
586
Дата 15.9.2006, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 57
Всего: 146



Цитата(123 @  15.9.2006,  10:32 Найти цитируемый пост)
FILE* file=fopen("filename.txt", "w+");
fprintf(file,"%S", "Это строка будет в файле");
fclose(file);

Должно быть "%s". Большая S означает, что строка UNICODE.
Цитата(123 @  15.9.2006,  10:32 Найти цитируемый пост)
  [C++ Error] Unit5.cpp(3): E2303 Type name expected
  [C++ Error] Unit5.cpp(3): E2356 Type mismatch in redeclaration of 'fprintf(FILE *,const char *,...)'
  [C++ Error] Unit5.cpp(3): E2063 Illegal initialization
  [C++ Error] Unit5.cpp(3): E2293 ) expected
  [C++ Error] Unit5.cpp(4): E2303 Type name expected
  [C++ Error] Unit5.cpp(4): E2356 Type mismatch in redeclaration of 'fclose(FILE *)'
  [C++ Error] Unit5.cpp(4): E2063 Illegal initialization
  [C++ Error] Unit5.cpp(4): E2293 ) expected 

Данный код тут не причем. Вероятно, где-то неправильно объявлена функция || класс || структура. Причем эта ошибка может быть в .H-файле. У меня что-то подобное было. Покахи исходник - скажу точно.
PM   Вверх
123
Дата 15.9.2006, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 28.7.2006

Репутация: нет
Всего: нет



#include <stdio.h>
FILE* file=fopen("filename.txt", "w+");
fprintf(file,"%S", "Это строка будет в файле");
fclose(file);

это весь код, просто оторвал от основной программы, чтобы протестировать.
может stdio.h выложить?
PM MAIL   Вверх
kirjanov
Дата 15.9.2006, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 22.1.2006
Где: Dark wood of erro r

Репутация: нет
Всего: 15



123,
лучше весь код программы покажи
PM MAIL   Вверх
586
Дата 15.9.2006, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 57
Всего: 146



Код
#include <windows.h>
#include <stdio.h>
#pragma hdrstop
#pragma argsused
int main(int argc, char* argv[])
{
 FILE* file=fopen("C:\\filename.txt", "w+");
 fprintf(file,"%s", "Ýòî ñòðîêà áóäåò â ôàéëå");
 fclose(file);
 return 0;
}

PM   Вверх
Romikgy
Дата 15.9.2006, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



123, имхо вполне четко сказали
Цитата(586 @  15.9.2006,  08:43 Найти цитируемый пост)
Должно быть "%s". Большая S означает, что строка UNICODE.




--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
123
Дата 15.9.2006, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 28.7.2006

Репутация: нет
Всего: нет



Цитата

лучше весь код программы покажи


Вот это все:

Цитата

#include <stdio.h>
FILE* file=fopen("filename.txt", "w+");
fprintf(file,"%S", "Это строка будет в файле");
fclose(file);


Я так думаю ошибка в библиотеке.
PM MAIL   Вверх
586
Дата 15.9.2006, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 57
Всего: 146



Цитата(123 @  15.9.2006,  10:55 Найти цитируемый пост)
FILE* file=fopen("filename.txt", "w+");
fprintf(file,"%S", "Это строка будет в файле");
fclose(file);

Нельзя это писать вне функции!!!
PM   Вверх
Romikgy
Дата 15.9.2006, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



Код

Format specifier    printf function    Unicode function
    %c                       narrow        wide
    %C              wide        narrow 
    %hc              narrow           narrow
    %hC               narrow         narrow
    %lc                 wide        wide
    %lC                wide        wide
    %s               narrow           wide
    %S               wide        narrow
    %hs            narrow        narrow
    %hS            narrow        narrow
    %ls               wide         wide
    %lS              wide        wide



--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
123
Дата 15.9.2006, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 28.7.2006

Репутация: нет
Всего: нет



Спасибо все понятно!

Это сообщение отредактировал(а) 123 - 15.9.2006, 10:03
PM MAIL   Вверх
dumb
Дата 15.9.2006, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 32
Всего: 158



Код

#include <stdio.h>

эту строчку в начало файла. такие строки не должны быть внутри функций или каких-либо объявлений.

edit: хех. похоже, оказалось наоборот - функции никакой нет...  smile
ps. и опять я забыл "обновить" перед постом...

Это сообщение отредактировал(а) dumb - 15.9.2006, 10:11
PM MAIL   Вверх
123
Дата 15.9.2006, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 28.7.2006

Репутация: нет
Всего: нет



C++ выдает ошибку [Linker Error] Unresolved external '__fastcall TForm1::Label1Click(System::TObject *)' referenced from E:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\UNIT5.OBJ

При таком коде:

Код

#include <vcl.h>
#pragma hdrstop
#include <stdio.h>
#include "fdgfdgf.h"
#define NAME "C:\filename11.txt"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Click(TObject *Sender)
{
FILE* file=fopen("NAME", "w+");
fprintf(file,"fhgfhgfh");
fclose(file);
}
//---------------------------------------------------------------------------




PM MAIL   Вверх
Romikgy
Дата 15.9.2006, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



Код

FILE* file=fopen(NAME, "w+");




--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
123
Дата 15.9.2006, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 28.7.2006

Репутация: нет
Всего: нет



Цитата

FILE* file=fopen(NAME, "w+");


Все равно ошибка.

Это сообщение отредактировал(а) 123 - 15.9.2006, 12:36
PM MAIL   Вверх
dumb
Дата 15.9.2006, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 32
Всего: 158



Код

#include "fdgfdgf.h" // хм...
#define NAME "C:\filename11.txt"
...
//---------------------------------------------------------------------------
void __fastcall TForm1::Click(TObject *Sender) // не пытайся исправлять имена функций(пока не поймешь, что где и как)
// если это обработчик клика на Label, то он и должен называться Label1Click
{
FILE* file=fopen("NAME", "w+"); // NAME у тебя определен как строка с кавычками. вторые не нужны.
// проверять надо, открылся ли файл... if (file) {...}
fprintf(file,"fhgfhgfh");
fclose(file);
}
//---------------------------------------------------------------------------

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0576 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.