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 Спасибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти