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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2011, 17:09   #1
Serjuk
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 136
По умолчанию Добавление в файл

Здравствуйте) Помогите решить проблему :

Код:
int main(int argc,char *argv[])
{
if( strcmp(argv[1],"create") == 0 ){
static const string str1 =
"=======================================================================\n"
%s
%s
"=======================================================================\n"
"-----------------------------------------------------------------------\n";
char arg[15];
char arg1[15];
	char str2[700]; 
	strcpy(arg,argv[2]);
    strcpy(arg1,argv[3]);
	sprintf(str2, str1.c_str(), arg,arg1);  //количество arg должно быть равно
	//количеству %s


	fstream f;
	f.open(fileName.c_str(),fstream::out);
	f<<str2;
	f.close();

//инициализация



 char name[100];
FILE *out;



puts ("Добавление в телефонный справочник");
if ((out=fopen(fileName.c_str(),"at"))==NULL)
{
    printf("Ошибка открытия файла для добавления");
    getchar();
    return 0;
}

printf ("Фамилия ->");
scanf ("%s",&name);

fprintf(out,"%s",name);
puts("Информация добавлена");
fclose(out);
 getchar();
}
Программа с использованием аргументов командной строки
Работа заключается в том, что при наборе в командной строке
programma create 1 2 в файл она запишет :
==========================
1
2
==========================
--------------------------
Но дальше она должна записать name, которое должны вводить с клавиатуры, но этого не происходит.. Подскажите в чем проблемка ?)
Serjuk вне форума Ответить с цитированием
Старый 23.03.2011, 17:18   #2
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

вместо scanf ("%s",&name);
scanf ("%s",name);
а лучше gets(name);
onewho вне форума Ответить с цитированием
Старый 23.03.2011, 18:25   #3
Serjuk
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 136
По умолчанию

попробовал scanf ("%s",name) - результат аналогичный. Доходит до того как я должен набивать текст с клавиатуры и все программа завершается аварийно.
а если gets то выдает ошибку - at this point in file
Serjuk вне форума Ответить с цитированием
Старый 24.03.2011, 19:04   #4
Serjuk
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 136
По умолчанию

попробовал заменить :
Код:
 char name[100];
FILE *out;



puts ("Добавление в телефонный справочник");
if ((out=fopen(fileName.c_str(),"at"))==NULL)
{
    printf("Ошибка открытия файла для добавления");
    getchar();
    return 0;
}

printf ("Фамилия ->");
scanf ("%s",&name);

fprintf(out,"%s",name);
puts("Информация добавлена");
fclose(out);
 getchar();
на
Код:
 char name[100];


fstream f1;
	f1.open(fileName.c_str(),fstream::out);
	cin >> name ;
f1<< name ;
	f1.close();
Результат аналогичный... В чем может быть проблема. Почему он не хочет вводить с клавиатуры строку символов, а потом записывать ее в файл ?
Serjuk вне форума Ответить с цитированием
Старый 24.03.2011, 23:40   #5
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

здесь всё верно кроме того что криво, ищите в другом месте ошибку. и вообще ЮЗАЙТЕ ДЕБАГ!
onewho вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление данных в XML файл. LexaL Помощь студентам 3 24.12.2010 09:25
Добавление строк в файл ArcaN0id Помощь студентам 1 27.05.2010 20:48
Добавление строчки в текстовый файл nolz Общие вопросы Delphi 10 23.11.2009 20:08
Добавление в файл HTML подписи и печати asale HTML и CSS 4 15.08.2009 22:55
Добавление записи в файл (Delphi) VadEr Помощь студентам 2 15.05.2009 10:30