little_greg Опубликовано 19 мая, 2009 Жалоба Поделиться Опубликовано 19 мая, 2009 Помогите разобраться, что не так! ОШИБКИ: 11 D:\main.cpp cannot convert `bool' to `FILE*' in assignment 351 C:\Dev-Cpp\include\stdlib.h too few arguments to function `void exit(int)' 14 D:\main.cpp at this point in file #include <cstdlib> #include <iostream> #include <fstream> #include <stdio.h> using namespace std; int main(int argc, char *argv[]) { FILE *fp; char letter; if((fp=fopen("MYFILE","w")==NULL)) { puts("Nevozmozhno otkryt fail"); exit(); } do { letter=getchar(); fputc(letter,fp); } while(letter!='\r'); fclose(fp) system("PAUSE"); return EXIT_SUCCESS; } Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 19 мая, 2009 Жалоба Поделиться Опубликовано 19 мая, 2009 (изменено) if((fp=fopen("MYFILE","w")==NULL)) Должно быть: if( (fp=fopen("MYFILE","w")) == NULL ) :) Изменено 19 мая, 2009 пользователем Darhazer Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
little_greg Опубликовано 20 мая, 2009 Автор Жалоба Поделиться Опубликовано 20 мая, 2009 Спасибо. Я уже сам заметил))) Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
little_greg Опубликовано 20 мая, 2009 Автор Жалоба Поделиться Опубликовано 20 мая, 2009 Почему, программа не завершает свою работу после нажатия N или n, а при вводе другого символа появляются сразу две строки: Vvedite imya Zhelaete vvesti drugoe imya? #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { FILE *fp; char flag; char name[20]; if((fp=fopen("MYFILE","w"))==NULL) { puts("Nevozmozhno otkryt fail"); system("PAUSE"); exit(0); } flag='y'; while((flag!='N')||(flag!='n')) { puts("Vvedite imya"); gets(name); fputs(name,fp); fputs("\n",fp); puts("Zhelaete vvesti drugoe imya?"); flag=getchar(); putchar('\n'); } fclose(fp); system("PAUSE"); return EXIT_SUCCESS; } Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 21 мая, 2009 Жалоба Поделиться Опубликовано 21 мая, 2009 little_greg: При вводе символа вводится и символ перевода строки, при вводе его надо отбрасывать. Конкретно, вместо flag=getchar(); нужно flag=getchar(); getchar(); Кроме того, в любом случае ты никогда не выйдешь из цикла. Условие ((flag!='N')||(flag!='n')) всегда верно. Правильно будет (flag!='N' && flag!='n') Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
little_greg Опубликовано 22 мая, 2009 Автор Жалоба Поделиться Опубликовано 22 мая, 2009 Спасибо! Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.